这是我的代码:
dynamic resultObject = JsonConvert.DeserializeObject(Result);
string final = JsonConvert.SerializeObject(resultObject);
这是我的最终结果(JSON):
如何获得selling_price字段?比如做final.selling_price?
我的课程:
public class ItemPriceJson {
public string item_price_id { get; set; }
public string item_code { get; set; }
public string item_desc { get; set; }
public string trnx_unit { get; set; }
public string price_level_id { get; set; }
public string price_level_code { get; set; }
public string selling_price { get; set; }
} // itemPriceJson
答案 0 :(得分:1)
您没有正确地将json反序列化为动态对象。首先,它是一个数组,而不是一个对象。
所以,试试这样:
dynamic resultObject = JArray.Parse(Result); //Dynamic object.
var sellingPrice = resultObject[0].selling_price; //Get the selling price. Could also use some casting here.
答案 1 :(得分:0)
创建一个描述对象的POCO类;例如
public class MyItemObject
{
public string item_price_id { get; set; }
public string item_desc { get; set; }
public string trnx_unit { get; set; }
}
然后使用JsonConvert反序列化对象的实例。
var result = JsonConvert.DeserializeObject<MyItemObject>(json);
修改强>
由于json是列表/集合反序列化为列表类型;
var listResult = JsonConvert.DeserializeObject<List<MyItemObject>>(json);
答案 2 :(得分:0)
public class ItemPriceJson {
public string item_price_id { get; set; }
public string item_code { get; set; }
public string item_desc { get; set; }
public string trnx_unit { get; set; }
public string price_level_id { get; set; }
public string price_level_code { get; set; }
public string selling_price { get; set; }
}
您可以使用Newtonsoft json库
var result = JsonConvert.DeserializeObject<List<ItemPriceJson>>(jsonstring);
答案 3 :(得分:0)
您应该将班级更改为
public class ItemPriceJson {
public int item_price_id { get; set; }
public string item_code { get; set; }
public string item_desc { get; set; }
public string trnx_unit { get; set; }
public int price_level_id { get; set; }
public string price_level_code { get; set; }
public int selling_price { get; set; }
} // itemPriceJson
并使用
反序列化它var results = JsonConvert.DeserializeObject<List<ItemPriceJson>>( Result );
因为json结果包含一个对象数组,所以你需要一个用于反序列化的集合