试图从web api反序列化json。这里是传入的JSON:Newtonsoft.Json反序列化问题
{"0":{"productname":"France and the French",
"imageurl":"http://img.rakuten.com/PIC/32994457/0/1/250/32994457.jpg",
"producturl":"http://www.theurl.com/rd.aspx?3d",
"price":"19.51",
"currency":"USD",
"saleprice":"",
"storename":"Buy.com (dba Rakuten.com Shopping)"}
}
这里是我的数据类:
public class Product
{
[JsonProperty("productname")]
public string productname { get; set; }
[JsonProperty("imageurl")]
public string imageurl { get; set; }
[JsonProperty("producturl")]
public string producturl { get; set; }
[JsonProperty("price")]
public string price { get; set; }
[JsonProperty("currency")]
public string currency { get; set; }
[JsonProperty("saleprice")]
public string saleprice { get; set; }
[JsonProperty("storename")]
public string storename { get; set; }
}
这里是代码:
string json = upcclient.GetProductJSON(upc, accessToken);
Product myproduct = JsonConvert.DeserializeObject<Product>(json);
应该是相当直截了当。 json正在被人工填充,但无论我尝试什么 - 产品作为主数据类,产品阵列等中的产品列表,myproduct从未被填充。
感谢您的帮助提前。这些东西通常不会很难。我已经做了50次左右,但这一次正在接近我。
关键可能是在开头,用'{“0”:' –
你似乎知道你自己的问题的答案..但你已经在想它了。 'Product作为主数据类,产品数组中的产品列表 - 正确。它是一个数组。将它反序列化为一个。 –
从技术上讲,JSON数组应位于方括号{“0”:[{data here}]}内。在这种情况下,它不是。我从大括号内的JSON数组提供者处获取它,并且只有一个项目。我刚才尝试了以下内容,但是没有去 列表 p =(列表)JsonConvert.DeserializeObject(json,typeof(List )); –