System.MissingMethodException:json数组的反序列化时出错
反序列化jsonString时出错。
错误是Type 'oodleListingsUser' is not supported for deserialization of an array.
我的反序列化代码是
string jsonString = new WebClient().DownloadString("http://api.oodle.com/api/v2/listings?key=TEST®ion=region_value&category=category_value&format=json"); JavaScriptSerializer ser = new JavaScriptSerializer(); jsonOodleApi p = ser.Deserialize(jsonString);
我对jsonOodleApi的定义是
public class jsonOodleApi { public oodleCurrent current; public oodleListings[] listings; public oodleMeta meta; public string state { get; set; } }
定义oodleCurrent和oodleMeta我不给予因为它的完美!
oodleListings的定义是
public class oodleListings { public string id { get; set; } public string title { get; set; } public oodleListingsUser user; // I have skipped some of fields because it have no issue at all. }
oodleListingsUser的定义是
public class oodleListingsUser { public string id { get; set; } public string url { get; set; } public string name { get; set; } public string photo { get; set; } }
问题是我的jsonString有时只返回一个user的值( oodleListingsUser的类型),有时它返回用户的数组,有时它返回用户的null!
当它只返回一个用户时,它运行得非常好! 没有任何问题。
但是当它返回用户数组时, 绽放! 错误发生Type 'oodleListingsUser' is not supported for deserialization of an array.
即使我已经尝试过public oodleListingsUser[] user
但是它给出了错误
No parameterless constructor defined for type of 'oodleListingsUser[]'
对于只返回一个用户的值!
现在我该怎么做才能解决这个问题?
尝试:
public oodleListings[] listings = new oodleListings[0];
或者将其List
。