簡體   English   中英

從JSON字符串C#中提取值

[英]Extracting value from json string C#

我的json字符串如下:

{
  "data": {
    "order_reference": "7000016543", 
    "package_data": [
      {
        "tracking_no": "34144582723408", 
        "package_reference": "7000016543"
      }
    ]
  }, 
  "success": true
}

我如何從這個json獲取tracking_no

我嘗試使用

dynamic jsonObj = JsonConvert.DeserializeObject(bytesAsString);

接着

foreach (var obj in jsonObj.items)
        {

        }

但它僅產生訂單參考。

您可以為JSON創建類型:

namespace Example
{
    using System;
    using System.Net;
    using System.Collections.Generic;

    using Newtonsoft.Json;

    public class MyObject
    {
        [JsonProperty("data")]
        public Data Data { get; set; }

        [JsonProperty("success")]
        public bool Success { get; set; }
    }

    public class Data
    {
        [JsonProperty("order_reference")]
        public string OrderReference { get; set; }

        [JsonProperty("package_data")]
        public PackageDatum[] PackageData { get; set; }
    }

    public class PackageDatum
    {
        [JsonProperty("package_reference")]
        public string PackageReference { get; set; }

        [JsonProperty("tracking_no")]
        public string TrackingNo { get; set; }
    }
}

然后可以使用JsonConvert.Deserialize<MyObject>(input);進行反序列化JsonConvert.Deserialize<MyObject>(input);

有關您的代碼的問題是:根json對象上沒有集合。 我的意思是這不是一個對象。 由於它只是一個對象,並且是孩子,因此您可以直接訪問。 然后,您有一個集合package_data。 因此,您可以在其中進行循環。 這是您的json數據的架構。 json字符串的模式

foreach(dynamic item in jsonObj.item.package_data)
{
     //item.tracking_no;
     //item.package_reference
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM