【发布时间】:2019-01-21 13:04:11
【问题描述】:
当使用 Json.NET 进行序列化时,我需要在反序列化之前取消转义后转义嵌入的 JSON。这意味着我根据this 帖子未转义 JSON。
这是我的 JSON:
{
"Message":null,
"Error":false,
"VData":{
"RNumber":null,
"BRNumber":"Session1"
},
"onlineFields":{
"CCode":"Web",
"MNumber":"15478655",
"Product":"100",
"JsonFile":" {
\"evaluation\":{
\"number\":[
{
\"@paraID\":\"1000\",
\"@Value\":\"\",
\"@label\":\"We are america\"
},
{
\"@paraID\":\"2000\",
\"@Value\":\"100\",
\"@label\":\"We are japan\"
},
{
\"@paraID\":\"3000\",
\"@Value\":\"1000\",
\"@label\":\"We are UK\"
},
{
\"@paraID\":\"4000\",
\"@Value\":\"\",
\"@label\":\"We are China\"
}
]
}
} "
}
}
取消转义后,我将上面的 JSON 绑定到我的模型类。它工作正常。将 JSON 绑定到我使用以下代码的模型。
private static void showJSON(string testJson){
Response response = JsonConvert.DeserializeObject<Response>(testJson);
var dropdowns = response.OnlineFields.JsonFile;
string json = JsonConvert.SerializeObject(dropdowns, Newtonsoft.Json.Formatting.Indented);
Console.WriteLine(json);
}
将 JSON 绑定到模型后,有一些逻辑可以将值设置为 JSON 并返回未转义的 JSON。这意味着它还返回未转义的JsonFile,我再次需要上面的 JSON 格式(转义嵌入的JsonFile)发送到客户端 API。
这是未转义的 JSON 格式,我需要将其转换为上面的转义 JSON(转义嵌入 JsonFile)
{
"Message":null,
"Error":false,
"VData":{
"RNumber":null,
"BRNumber":"Session1"
},
"onlineFields":{
"CCode":"Web",
"MNumber":"15478655",
"Product":"100",
"JsonFile":{
"evaluation":{
"number":[
{
"@paraID":"1000",
"@Value":"",
"@label":"We are america"
},
{
"@paraID":"2000",
"@Value":"100",
"@label":"We are japan"
},
{
"@paraID":"3000",
"@Value":"1000",
"@label":"We are UK"
},
{
"@paraID":"4000",
"@Value":"",
"@label":"We are China"
}
]
}
}
}
}
之前我问过question 如何将这种嵌入的 JSON 直接反序列化为 c# 类,但那里的答案没有解释如何以相同的格式重新序列化。我需要将上一个问题的答案扩展到写作。
【问题讨论】: