c# - 系统.MissingMethodException : Error while deserialization of json array

标签 c# asp.net json json.net deserialization

反序列化 jsonString 时出现错误。

错误是数组的反序列化不支持类型“oodleListingsUser”。

我的反序列化代码是

    string jsonString = new WebClient().DownloadString("http://api.oodle.com/api/v2/listings?key=TEST&region=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; }

}

oodleCurrentoodleMeta 的定义我没有给出,因为它很完美!

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/

相关文章:

asp.net - asp.net core 中事件内存 session 的访问列表

javascript - 在文本框中按回车键时,如何使用 JQuery 关注提交按钮?

json - 使用jq解析数组并映射到字符串

c# - 我怎样才能得到一个帐户的所有事件?

c# - 无窗口 Winforms 应用程序上的关闭事件

c# - 求三次多项式的根

c# - 将页面重定向到不同的网络浏览器

java - 如何将多维 JSON 数组转换为多维 Java 数组

arrays - Redux 在存储中返回一个空数组 - Reducer 无法正常工作?

javascript - 将代码隐藏 C# 变量更新为 asp.net