2013-08-20 271 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' –