从列表中获取值(c# UWP)

本文关键字:UWP 列表 获取 | 更新日期: 2023-09-27 18:08:15

我有类

 public class RootObject
    {
        public int id { get; set; }
        public int parent_id { get; set; }
        public string status { get; set; }
        public string order_key { get; set; }
        public string currency { get; set; }
        public string version { get; set; }
        public bool prices_include_tax { get; set; }
        public string date_created { get; set; }
        public string date_modified { get; set; }
        public int customer_id { get; set; }
        public double discount_total { get; set; }
        public double discount_tax { get; set; }
        public double shipping_total { get; set; }
        public double shipping_tax { get; set; }
        public double cart_tax { get; set; }
        public double total { get; set; }
        public double total_tax { get; set; }
        public Billing billing { get; set; }
        public Shipping shipping { get; set; }
        public string payment_method { get; set; }
        public string payment_method_title { get; set; }
        public string transaction_id { get; set; }
        public string customer_ip_address { get; set; }
        public string customer_user_agent { get; set; }
        public string created_via { get; set; }
        public string customer_note { get; set; }
        public string date_completed { get; set; }
        public string date_paid { get; set; }
        public string cart_hash { get; set; }
        public List<object> line_items { get; set; }
        public List<object> tax_lines { get; set; }
        public List<object> shipping_lines { get; set; }
        public List<object> fee_lines { get; set; }
        public List<object> coupon_lines { get; set; }
    }

我得到这样的数据

List<RootObject> rootObjectData = JsonConvert.DeserializeObject<List<RootObject>>(products);
   foreach (RootObject root in rootObjectData)
        {
            int id = root.id;
            int customer_id = root.customer_id;
            string fio = root.billing.first_name + " " + "  " + root.billing.last_name;
            string adress = root.billing.address_1 + " " + "  " + root.billing.address_2;
            double total = root.total;
            string telephone = root.billing.phone;

line_itemsList<object>

line_items我有一些json与数据。

例如

"line_items": [
{
  "product_id": 93,
  "quantity": 2
},
{
  "product_id": 22,
  "variation_id": 23,
  "quantity": 1
}

,

我怎样才能得到例如product_id ?

非常感谢你的帮助!

从列表中获取值(c# UWP)

您可以使用非常强大的动态:

List<dynamic> lineItems = jsonObject.line_items;
foreach (dynamic line_item in lineItems)
{
  int productId = line_item.product_id; 
}

请记住:

它可能崩溃,因为重命名/其他因素-dynamic是非常强大的,但要谨慎使用。

您也可以直接访问它,而不需要您创建的"类"-只需反序列化为动态并访问字段!

如果不够明显

using Newtonsoft.Json.Linq;
foreach(object line_item in line_items)
{
    JObject line_item_jobject = line_item as JObject;
    Jvalue product_id = line_item_jobject["product_id"] as JValue;
    int product_id_value = (int)product_id.Value;
    // Another way
    int product_id_value2 = line_item_jobject.Value<int>("product_id");
}