JSON.NET解析器*似乎是双序列化我的对象
我的问题是:
这是从我的WebAPI控制器返回的响应。
"[
[
{\"id\":\"identifier\"},
{\"name\":\"foobar\"}
]]"
注意,响应被包装在引号中,所有嵌入的引号都被转义。这显然是个问题。是否有任何设置可以提供给JSON.NET序列化程序以防止这种情况发生?
编辑
正如p.s.w.g在他的回复中猜测的那样,我使用的是JSON.NET的
JsonConvert.SerializeObject(instance)
来执行我的序列化。
我这样做是因为当我构建我的自定义转换器时,我已经将它们包含在Json转换器中,在我的WepApiConfig中包含了DefaultSettings(显然,我认为这不会是一个问题)
我以前曾尝试将HttpGets的返回类型交换为“MyObjecttype”,响应是对象的ToString()方法的json表示形式…它让我知道序列化不是通过我的转换器传递的。
将我的HttpGets的返回类型从String更改为“MyObject类型”,并将这些转换器直接插入WebAPi的默认HttpConfiguration中。
config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new FooConverter());config.Formatters.JsonFormatter.SerializerSettings.Converters.Add(new BarConverter());
简单的方法。