【发布时间】:2014-10-22 22:17:01
【问题描述】:
我的问题是这样的:
这是从我的 WebAPI 控制器发回的响应。
"[
[
{\"id\":\"identifier\"},
{\"name\":\"foobar\"}
]
]"
请注意,响应包含在引号中,并且所有嵌入的引号都被转义了。这显然是个问题。我可以向 JSON.NET 序列化程序提供任何设置来防止这种情况发生吗?
编辑
正如 p.s.w.g 在他的回复中猜测的那样,我使用的是 JSON.NET 的
JsonConvert.SerializeObject(instance)
执行我的序列化。
我这样做是因为在构建自定义转换器时,我已将它们包含在我的 WepApiConfig 中的 JsonConvert.DefaultSettings 中(我显然认为这不会成为问题)
我之前曾尝试将我的 HttpGets 的返回类型交换为“我的对象类型”,并且响应是我的对象的 ToString() 方法的 json 表示...这让我知道序列化没有通过我的转换器.
将我的 HttpGets 的返回类型从字符串更改为“我的对象类型”并将这些转换器直接插入 WebAPi 的默认 HttpConfiguration 就可以了。
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new FooConverter());
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new BarConverter());
简单易懂。
【问题讨论】:
-
你能显示 API 操作吗?
标签: c# serialization asp.net-web-api json.net