簡體   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