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字符串了