簡體   English   中英

使用 C# 解析 JSON 對象內的數組

[英]Parse Array inside of an JSON Object with C#

我正在嘗試解析 json 對象中的數組,但它不起作用,這是代碼:

public void JsonParserPersonal(string file)
        {
            string fullname;
            string email;

            var json = System.IO.File.ReadAllText(file);
            var objects = JObject.Parse(json);
            var arrays = JArray.FromObject(json);

            fullname = (string)objects["NameComponents"]["FullName"];
            email = (string)arrays["EmailAddresses"]["ItemValue"];
            SearchReplacePersonal(fullname, email);
        }

這是 JSON 數據:

{
    "NameComponents": {
        "FullName": "XXX"
    },
    "EmailAddresses": [
        {
            "IsPersonal": true,
            "IsBusiness": false,
            "FieldName": "Email1Address",
            "DisplayTitle": "Email",
            "ItemValue": "xxx@yyy.com"
        }
    ]
}

我想要的只是獲取“EmailAddresses”中的“ItemValue”。 當我運行此代碼時,這是我得到的錯誤:

System.ArgumentException: '對象序列化為字符串。 預期 JArray 實例。

我正在使用 Visual Studio 2019。

謝謝!

訪問JArray ,應指定index

var objects = JObject.Parse(json);
var jarray = objects["EmailAddresses"];

Console.WriteLine((string)objects["NameComponents"]["FullName"]);
Console.WriteLine((string)jarray[0]["ItemValue"]);

或者迭代JArray

foreach(var item in jarray)
{
    foreach(JProperty property in item.Children())
    {
        Console.WriteLine($"{property.Name} - {property.Value}");
    }                
}

暫無
暫無

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

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