你怎么得到sell_price? (Xamarin表格)

时间:2017-06-20 08:59:36

标签: c# json

这是我的代码:

dynamic resultObject = JsonConvert.DeserializeObject(Result);
string final = JsonConvert.SerializeObject(resultObject);

这是我的最终结果(JSON):

enter image description here

如何获得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

4 个答案:

答案 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结果包含一个对象数组,所以你需要一个用于反序列化的集合