2013-08-20 125 views
1

我想要做的是来自JSON的字符串特定值。从JSON到空字符串或文本框的字符串值

JSON链接

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

我如何将能够从字符串到一个文本框的具体数据? 即对“资产标签” &“保修”

字符串值我已经有代码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); 
+0

你用什么来反序列化对象?,你是否反序列化到你创建的特定对象? – NicoRiff

+0

向我们显示您的代码。 – SLaks

+0

Newtonsoft.Json.JsonConvert.DeserializeObject –

回答

1

我看到您正在使用戴尔保修API。而不是解码他们的JSON字符串,在他们的项目中创建一个服务引用。将他们的API放入您的服务参考网址。回来时,我写了这一切我所知道的只有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 
      } 
+0

它工作。但是,我将如何能够得到serviceLevelDecription?即“完全关怀”“第二天.....等等等等 –

+0

NVM想通了,这对我有用 –

+0

其实它唯一的保修服务开始和结束日期为戴尔数字交付。 Next Day Support,以及为最终用户提供的金牌技术支持或专业技术支持,当我访问他们的网站时,为这项资产提供服务 –

1

你可以用这个尝试:

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

然后你转换到你所需要的类型。

希望可以帮到

+0

我确实尝试过,但我怎样才能够将其显示在文本框中? –

+0

无法将类型'Newtonsoft.Json.Linq.JObject'转换为'Newtonsoft.Json.Linq.JArray' –