为了账号安全,请及时绑定邮箱和手机立即绑定

JSON.NET解析器*似乎是双序列化我的对象

JSON.NET解析器*似乎是双序列化我的对象

收到一只叮咚 2019-07-22 10:12:08
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());简单的方法。
查看完整描述

3 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

API在发送共鸣之前进行序列化。例如:返回OK(YourUnSerializedObject);

没必要帮你唱。


查看完整回答
反对 回复 2019-07-22
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

在这一点上,我认为对我来说可能很重要,我必须使用我自己的Json转换器来完成这项任务。我从最初的描述中删除了它们,因为我不想提供不相关的信息。我需要能够调用JsonConvert.SerializeObject(或使用我的转换器的等效方法),并让它返回json而不是字符串。返回对象只会序列化对象的ToString(),我不能这样做。我也没有数据契约可以使用

查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 412 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信