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