反序列化 jsonString 时出现错误。
错误是数组的反序列化不支持类型“oodleListingsUser”。
我的反序列化代码是
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<jsonOodleApi>(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 有时只返回一个用户值(oodleListingsUser 类型),有时返回用户数组,有时返回 null 用户!
当它只返回一个用户时,它运行得非常好!没问题。
但是当它返回用户数组时,bloom ! 发生错误 Type 'oodleListingsUser' is not supported for deserialization of array.
即使我已经尝试过 public oodleListingsUser[] user
但它会给出错误
No parameterless constructor defined for type of 'oodleListingsUser[]'
对于只返回一个用户的值!
现在我应该怎么做才能解决这个问题?
最佳答案
尝试:
public oodleListings[] listings = new oodleListings[0];
或者将其设为 List<oodleListings>
也许吧。
关于c# - 系统.MissingMethodException : Error while deserialization of json array,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9173811/