1

我想要做的是来自 JSON 的字符串特定值。

JSON链接

https://api.dell.com/support/v2/assetinfo/warranty/tags.json?svctags=G88NJX1&apikey=1adecee8a60444738f280aad1cd87d0e

我如何能够将特定数据从它字符串到文本框?“资产标签”和“保修”的 IE 字符串值

我已经有了 DeserializeObject 的代码,并将其显示在文本框中。我只是不确定如何从中挑选特定数据,因为我不需要大部分垃圾。

        string Serial = "G88NJX1";
        WebClient webClient = new WebClient();
        dynamic result = JsonConvert.DeserializeObject(webClient.DownloadString("https://api.dell.com/support/v2/assetinfo/warranty/tags.json?svctags=" + Serial + "&apikey=1adecee8a60444738f280aad1cd87d0e"));

        textBox1.Text = Convert.ToString(result);
4

2 回答 2

1

你可以试试这个:

JArray obj = (JArray)JsonConvert.DeserializeObject(yourJSONString);
object a = obj[0]["theKeyYouNeed"];

然后你转换成你需要的类型。

希望有帮助

于 2013-08-20T19:40:08.327 回答
1

我看到您正在使用戴尔保修 API。不要解码他们的 JSON 字符串,而是在您的项目中为他们创建一个服务引用。将他们的 API 放在您的服务参考 URL 中。当我写这篇文章时,我只有 IP 地址而不是 DNS 名称,所以我对 Dell API 的服务引用是:

http://143.166.84.118/services/assetservice.asmx?WSDL

这是我获取保修数据(和其他内容)的方式。它使用 API 的 EntitlementData 对象来存储信息。

            string ServiceTag = "your service tag here";
            DellServiceReference.AssetServiceSoapClient svc = new DellServiceReference.AssetServiceSoapClient();
            Guid DellFeeder = new Guid("12345678-1234-1234-1234-123456789012");
            DellServiceReference.Asset[] assets = svc.GetAssetInformation(DellFeeder, "dellwarrantycheck", ServiceTag);

            // go through each warranty
            DellServiceReference.EntitlementData[] entitlements = assets[0].Entitlements;
            foreach (DellServiceReference.EntitlementData warr in entitlements)
            {
                DateTime start = warr.StartDate;
                DateTime stop = warr.EndDate;
                // do stuff with this
            }
于 2013-08-20T19:45:33.567 回答