调用newtonsoft.json反序列出错

来源:互联网 发布:淘宝商家管理系统 编辑:程序博客网 时间:2024/06/05 18:59
调用newtonsoft.json反序列出错:

Newtonsoft.Json.JsonSerializationException: Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List`1[WebService.Yeesky.JsonString]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List<T>) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object.Path 'S', line 1, position 5.

 贴一片E文solution:

 JsonConvert.DeserializeObject - Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List`1[System.String]'Run into this issue while consuming a 3rd party JSON API using JSON.NET.Complete exception message:Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'System.Collections.Generic.List`1[System.String]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.The json string I was trying to deserialize had a field looking like this:"extras": {},In my C# class that field was declared as a List<string>. By declaring the field as an IDictionary<string, string> instead the problem was solved. Lesson learned:    If the json value is '[]' => declare the field as List<type>    If the json value is '{}' => declare the field IDictionary<type, type>

 

原创粉丝点击