无法反序列化当前JSON数组(例如[1,2,3])

贾马

我正在尝试读取JSON结果。

这是我的RootObject

public class RootObject
{
public int id { get; set; }
public bool is_default { get; set; }
public string name { get; set; }
public int quantity { get; set; }
public string stock { get; set; }
public string unit_cost { get; set; }
}

这是我的JSON结果

[{"id": 3636, "is_default": true, "name": "Unit", "quantity": 1, "stock": "100000.00", "unit_cost": "0"}, {"id": 4592, "is_default": false, "name": "Bundle", "quantity": 5, "stock": "100000.00", "unit_cost": "0"}]

这是我的代码来读取结果

     public static RootObject GetItems(string user, string key, Int32 tid, Int32 pid)
    {
        // Customize URL according to geo location parameters
        var url = string.Format(uniqueItemUrl, user, key, tid, pid);

        // Syncronious Consumption
        var syncClient = new WebClient();

        var content = syncClient.DownloadString(url);

        return JsonConvert.DeserializeObject<RootObject>(content);

    }

但是我有这个错误的问题:

无法将当前JSON数组(例如[1,2,3])反序列化为类型'avaris_cash_salepoint.BL.UniqueItemDataRootObject',因为该类型需要JSON对象(例如{“ name”:“ value”})才能正确反序列化。要解决此错误,可以将JSON更改为JSON对象(例如{“ name”:“ value”}),也可以将反序列化类型更改为数组,或者将实现集合接口的类型(例如ICollection,IList)更改为List,例如List从JSON数组反序列化。还可以将JsonArrayAttribute添加到类型中,以强制其从JSON数组反序列化。路径'',第1行,位置1。

在这一行:返回JsonConvert.DeserializeObject(content);

对解决此错误有帮助吗?

大雁

我认为您遇到的问题是JSON是传入时的对象列表,并且与您的根类没有直接关系。

var content 看起来像这样(我假设):

[
  {
    "id": 3636,
    "is_default": true,
    "name": "Unit",
    "quantity": 1,
    "stock": "100000.00",
    "unit_cost": "0"
  },
  {
    "id": 4592,
    "is_default": false,
    "name": "Bundle",
    "quantity": 5,
    "stock": "100000.00",
    "unit_cost": "0"
  }
]

注意:利用http://jsonviewer.stack.hu/格式化JSON。

因此,如果您尝试以下操作,它应该可以工作:

  public static List<RootObject> GetItems(string user, string key, Int32 tid, Int32 pid)
    {
        // Customize URL according to geo location parameters
        var url = string.Format(uniqueItemUrl, user, key, tid, pid);

        // Syncronious Consumption
        var syncClient = new WebClient();

        var content = syncClient.DownloadString(url);

        return JsonConvert.DeserializeObject<List<RootObject>>(content);

    }

如果您不希望返回的列表,则需要进行迭代RootObject


我继续并在控制台应用程序中对此进行了测试,效果很好。

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法反序列化当前JSON数组(例如[1,2,3])

无法反序列化当前JSON数组(例如[1,2,3])

无法将当前JSON对象(例如{“ name”:“ value”})反序列化为类型需要JSON数组(例如[1,2,3])才能正确反序列化

无法反序列化当前JSON数组(例如[1,2,3])。C#,无法找出错误

无法将当前JSON数组(例如[1,2,3])反序列化为type

JSON DeserializeObject 无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型

无法将当前 JSON 数组(例如 [1,2,3])反序列化为类型 'TenantManagementWebApi.Entities.Tenant

无法将当前JSON对象(例如{“ name”:“ value”})反序列化为类型'Value []',因为该类型需要JSON数组(例如[1,2,3])

无法将当前JSON数组(例如[1,2,3])反序列化为具有复杂和嵌套对象的类型

无法将当前JSON数组(例如1 2 3)反序列化为type

无法将JSON数组(例如[1,2,3])反序列化为类型'',因为该类型需要JSON对象(例如{“ name”:“ value”})才能正确反序列化

反序列化 Json 出现错误“无法反序列化当前的 JSON 数组”

无法反序列化当前的 JSON 数组 c#

C#-无法反序列化当前JSON数组

C#:“无法反序列化当前JSON数组”

无法反序列化当前JSON对象(例如{“ name”:“ value”})为List的Collection类型

无法反序列化json数组

使用Json.Net反序列化时出现错误“无法反序列化当前JSON数组”

Json 反序列化 | 无法反序列化当前的 Json

无法反序列化当前 JSON 对象,因为该类型需要 JSON 数组

无法反序列化当前JSON对象以及json

无法将当前的json数组反序列化为type

API调用后无法反序列化当前JSON数组

无法反序列化 MVC 应用程序中的当前 JSON 数组

由于字段名称,无法反序列化当前的 JSON 数组

无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型,因为该类型需要 JSON 数组

无法反序列化当前的 json 对象

无法反序列化当前JSON对象-空列表

JsonPath / Jackson:如何将JSON数组反序列化为单个对象(“ [1,2,3]”-> Vector3d实例)?