字符串从JSON到空字符串或文本框的值

时间:2013-08-20 19:27:17

标签: c# .net json string visual-studio-2012

我正在尝试做的是来自JSON的字符串特定值。

JSON链接

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

我如何能够将特定数据从它串到文本框? I.E字符串“资产标签”的价值& “保证”

我已经有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);

2 个答案:

答案 0 :(得分:1)

你可以试试这个:

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

然后转换为您需要的类型。

希望有所帮助

答案 1 :(得分:1)

我发现您使用的是Dell保修API。而不是解码他们的JSON字符串,在项目中为他们创建服务引用。将他们的API放在您的服务参考URL中。回到我写的时候,我所拥有的只是IP地址而不是DNS名称,所以我对戴尔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
            }