【发布时间】:2015-09-20 20:45:09
【问题描述】:
为了提高性能,我将较大操作的结果作为 JSON 缓存在一个表中 - 连同一个键列来确定要返回哪些行。所以数据看起来像这样:
Id Json
---- ---------
1 {"property": "data", "...": "..."}
2 {"property": "data", "...": "..."}
因此,我检索到的对象具有属性 int .Id 和 string .Json。当返回这样一个带有 Id 的对象时,我首先需要反序列化 JSON - 以便正确地重新序列化它。如果我不先反序列化它,我会得到一个带引号的字符串,即我的返回对象看起来像这样
{
"id": 1,
"json": "{\"property\": \"data\", ...
}
相反,我需要:
{
"id": 1,
"json": {
"property": "data",
...
}
}
有没有办法“告诉”Json.Net 序列化程序直接输出 .Json 属性而不进行序列化 - 同时序列化其他属性?
【问题讨论】:
-
所以如果我理解你的输出是 {"id":1,"Json":{"data1":"value","data2":"value","data3":"value" }} 而你想要 {"id":1,"Json":"\"data1\":\"value\",\"data2\":\"value\",\"data3\":\"值\""}?
-
@VeNoMiS:查看更新后的问题
-
我认为您需要为该类型编写自己的 JsonConverter。
-
使用 2 个类(容器和项目)和具有 2 个道具(int id 和项目 json)的容器和带有道具的项目。 Item m = JsonConvert.DeserializeObject
- (row.json) 应该可以解决问题
-
您确定它是有效的 JSON 吗?如果您不想让 Json.NET 转义它,则它必须是有效的。
标签: c# .net asp.net-web-api json.net