我正在创建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)
,则可以正常使用。但是我无法返回对象列表
答案 0 :(得分:0)
错误说它正在尝试将“on”转换为布尔值,而它无法做到。我只能猜测它是一个“开”或“关”的字段,因此是布尔字段。
如果您可以控制数据,则可能需要将其更改为true和false。另外,你必须编写一个JASON转换器,但是当你使用转换器进行反序列化时,它会将所有的on和off视为一个布尔类型。这可能是一个问题,取决于你在做什么。
我有一个类似的问题here你可以查看。在底部,在最后一个答案中,我粘贴了一些正在运行的代码以及如何执行它的示例。您可以在控制台程序中剪切并粘贴它并进行测试。
我希望有所帮助。