【发布时间】:2015-06-02 12:24:51
【问题描述】:
我是第一次使用 json.net。这真的很简单,但我有一个问题:它似乎是 JsonConvert.SerializeObject(Model, Formatting.Indented) 应该不返回引用,并且通过使用 PreserveReferencesHandling = Ignore,它也应该处理 $id 属性,但我无法管理它。
我的 JsonConvert.SerializeObject 调用在剃刀视图 (MVC3) 中,我得到的 JSON 字符串是
{"Items": [
{
"$id": \"1\",
"ID_DB": 18,
"ID_SAP": null,
...
}]
}
也许,我需要更改 Web.config 或将更多配置设置放在我项目的另一个文件中。拜托,你能告诉我我错过了什么吗?
提前谢谢大家。
问候
Tistklehoff
【问题讨论】:
-
在你的项目的 global.asax.cs 文件中可能有一些默认的配置代码或其他文件导致了这种情况,因为默认行为肯定不会像那样保留 $id 。寻找对 config.Formatters 或类似的调用。
-
您好,非常感谢,我也得到了一些数据为 "DATA": { $ref:XX },所以,是时候看看 config.Formatters...跨度>
-
我的 global.asax.cs 很清楚,因为我使用的是一次性转换,如下所示:(选项 1,单个 jsonconvert)stackoverflow.com/questions/13274625/how-to-set -custom-jsonserializersettings-for-json-net-in-mvc-4-web-api 有什么想法吗?
-
嗯,您在链接中的问题是指 AspNet WebApi 和 MVC4,但您使用的是 MVC3 项目,对吗?我相信 MVC3 控制器使用 JsonDataContractsSerializer,它可能会在请求管道的某个地方拦截你。 msdn.microsoft.com/en-us/library/bb412179%28v=vs.110%29.aspx
-
我认为您需要使用此线程中描述的方法之一来解决问题。 stackoverflow.com/questions/7109967/…
标签: json.net