0

我正在尝试将此 JSON链接中的数据串起来点击链接查看

使用 JSON.NET。我能够反序列化和字符串整个事情。但我需要的只是以下的值

    "Warranty":[
      {
        "EndDate": "ValueIWant",
        "ServiceLevelDescription": "ValueIWant"
      },

应该有 4 个保修条目,我需要所有的 EndDate 和 ServiceLevelDescription 并将其列在多行文本框中。

编辑:最终工作代码

        string Serial = "G88NJX1";
        WebClient client = new WebClient();
        Stream stream = client.OpenRead("https://api.dell.com/support/v2/assetinfo/warranty/tags.json?svctags=" + Serial + "&apikey=1adecee8a60444738f280aad1cd87d0e");
        StreamReader reader = new StreamReader(stream);
        var jObject = JObject.Parse(reader.ReadLine());

        foreach (var o in jObject["GetAssetWarrantyResponse"]["GetAssetWarrantyResult"]["Response"]["DellAsset"]["Warranties"]["Warranty"])
        {
            Console.WriteLine("Warranty end date: {0}", (string)o["EndDate"]);
            Console.WriteLine("Warranty service level description: {0}", (string)o["ServiceLevelDescription"]);

        }

        Console.ReadLine();
        stream.Close();
4

1 回答 1

1

您可以使用 json.net 仅解析 json,而不是反序列化它,然后您可以使用 linq 或其他方式查询解析的数据。详情在这里

此代码片段在 linqpad 中工作,可从示例 json 中输出您想要的两个值。

var json = @"{'Warranty':[{'EndDate':'ValueIWant','ServiceLevelDescription':'ValueIWant'}]}";

var j = JObject.Parse(json);

foreach(var o in j["Warranty"])
{
    Console.WriteLine("Warranty end date: {0}", (string)o["EndDate"]);
    Console.WriteLine("Warranty service level description: {0}", (string)o["ServiceLevelDescription"]);
}
于 2013-08-21T02:47:53.733 回答