繁体   English   中英

Newtonsoft.Json.JsonSerializationException 反序列化 JSON 响应 C#

[英]Newtonsoft.Json.JsonSerializationException in deserializing the JSON response C#

我正在创建 C# 应用程序,它从 Web 服务获取响应并将其作为 DTO 对象列表返回,例如

 List<Models.iLabDTO.RootObject> response = new List<Models.iLabDTO.RootObject>();
 public async Task<IHttpActionResult> Get()
    {
      ......
      var request_returnDataObj = JsonConvert.DeserializeObject<Models.iLabDTO.RootObject>(responsefile);
      response.Add(request_returnDataObj);
      }
    return Ok(response);

但它会引发错误,例如

 <Error>
  <Message>An error has occurred.</Message>
 <ExceptionMessage>
 Error converting value "on" to type 'System.Boolean'. Path 
'il_response.c_forms[0].fields[0].required', line 1, position 354.
</ExceptionMessage>
 <ExceptionType>Newtonsoft.Json.JsonSerializationException</ExceptionType>

如果我只是return OK(response)而不使用response.Add(request_returnDataObj)它工作正常。 但我无法返回对象列表

该错误表示它正在尝试将“on”转换为布尔值,但它无法做到。 我只能猜测它是一个“开”或“关”的字段,因此是布尔字段。

如果您可以控制数据,您可能希望将其更改为 true 和 false。 否则,您必须编写一个 JASON 转换器,但是当您使用转换器反序列化时,它会将所有打开和关闭视为布尔类型。 这可能是一个问题,具体取决于您在做什么。

我在这里遇到了类似的问题您可以查看。 在底部,在最后一个答案中,我粘贴了一些正在运行的代码以及如何执行此操作的示例。 您可以将其剪切并粘贴到控制台程序中并进行测试。

我希望这有帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM