json转义问题


后端程序接受前台传递过来json

1正常json没有问题 比如 

{
"id":21,
"userName":"2张天师",
"phone":"15175220421",
"remark":"1adfadfsa",
"departMent":"1产品部",
"roleId":2
}

后台可以正常解析  var extraObj = JsonConvert.DeserializeObject<UpdateUserModel>(json);

或者

dynamic request = JsonConvert.DeserializeObject<DynamicDictionary>(req.Data.ToStringUtf8());
int id = (int)request.id;
string extra = request.userName;

2 前台json 中包含json对象正常 解析方法同上

{
"id": 21,
"extra": { \"test\": 5}
}

3前台json中包含json字符串 容易出现解析失败的问题

{
"id": 21,
"extra": "{ \"test\": 5}"
}

由于我需要在后台代码拼接json

extra 又是一个对象

string json = "{ \"id\":21,\"extra\":\"  +JsonConvert.SerializeObject(updateObj)+    \"  }"

这样拼接完后  是无法解析该json的

正确的格式应该是

string json = "{ \"id\":21,\"extra\":\"  \\\"test\\\":5  \"  }"

解决方法:

JObject j = new JObject();
j.Add("id", extraObj.id);
j.Add("extra", JsonConvert.SerializeObject(updateObj));

j.ToString()就是正确的json字符串了

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM