【发布时间】:2014-03-20 01:32:27
【问题描述】:
我正在尝试读取我的 JSON 结果。
这是我的根对象
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),例如可以从 JSON 数组反序列化的 List。 JsonArrayAttribute 也可以添加到类型中以强制它 从 JSON 数组反序列化。路径'',第 1 行,位置 1。
在这一行: return JsonConvert.DeserializeObject(content);
有什么帮助可以解决这个错误吗?
【问题讨论】:
-
var content传入DeserializeObject之前的内容是什么? -
content 包含 json 的结果,@Dayan
-
看起来和上面的 JSON 示例完全一样吗?
标签: c# arrays json serialization json.net