json转义问题

Posted songhuan999999

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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字符串了

 

以上是关于json转义问题的主要内容,如果未能解决你的问题,请参考以下文章

json_encode中文不转义问题

json转义问题

取消转义后如何转义嵌入的 JSON

关于 SpringBoot 返回对象为 json 字符串时转义问题

如何转义 JSON 字符串?

java正则转义json中双引号