2012-01-01 119 views
2

我有一個JSON對象,我希望得到的值: 實體>媒體>尺寸>大>^h獲取JSON對象節點

有沒有辦法得到它像XML - > Xpath的方法是什麼?

這是額外的線路是無關緊要的質疑只是因爲......

{ 
    "created_at": "Sun, 01 Jan 2012 17:05:32 +0000", 
    "entities": { 
    "user_mentions": [ 
     { 
     "screen_name": "nurdanterbiyik", 
     "name": "nurdan", 
     "id": 264782080, 
     "id_str": "264782080", 
     "indices": [ 
      0, 
      15 
     ] 
     } 
    ], 
    "media": [ 
     { 
     "id": 153522253777219584, 
     "id_str": "153522253777219584", 
     "indices": [ 
      44, 
      64 
     ], 
     "media_url": "http://p.twimg.com/AiFrrSmCMAAdEID.jpg", 
     "media_url_https": "https://p.twimg.com/AiFrrSmCMAAdEID.jpg", 
     "url": "http://t.co/ZwHN9gvO", 
     "display_url": "pic.twitter.com/ZwHN9gvO", 
     "expanded_url": "http://twitter.com/emelkiraac/status/153522253773025280/photo/1", 
     "type": "photo", 
     "sizes": { 
      "large": { 
      "w": 536, 
      "h": 800, 
      "resize": "fit" 
      }, 
+0

使用JavascriptSerializer:你可以傳遞一個字符串並返回一個對象。從那裏訪問返回對象的屬性並獲取h。 – frenchie 2012-01-01 21:15:21

+0

我剛試過。謝謝 – kankele 2012-01-01 22:15:21

回答

0

我更願意認爲JSON純粹作爲序列化對象的 - 第一個和最後一件事,我想用它做是將其反序列化爲我隨後使用的對象。

我不能告訴你這樣做在C#中的最佳方式,但我已經使用JSON.NET

JSON.NET也將讓你(引自網站)好運氣「的LINQ to JSON是好的對於只想從JSON獲取值的情況,您沒有要序列化或反序列化的類,或者JSON與您的類完全不同,並且需要手動讀取和寫入對象。LINQ to JSON允許您輕鬆地在.NET中讀取,創建和修改JSON。「,這聽起來像您正在嘗試做的事情。我從來沒有嘗試過,但如果你所要做的只是從長字符串中獲取一段數據,那麼這聽起來像是一個很好的選擇。

8

使用JSON.NET有幾種方法可以讀取數據,而無需將JSON文本反序列化爲對象。這裏是一個簡化的例子:

string json = @" { 
""created_at"": ""Sun, 01 Jan 2012 17:05:32 +0000"", 
    ""entities"": { 
    ""media"": [{ 
     ""type"": ""photo"", 
     ""sizes"": { 
     ""large"": { 
      ""w"": 536, 
      ""h"": 800, 
      ""resize"": ""fit"" 
     } 
     } 
    }] 
    } 
} 
"; 

JObject o = JObject.Parse(json); 
int h = (int)o["entities"]["media"][0]["sizes"]["large"]["h"]; 
int h2 = (int)o.SelectToken("entities.media[0].sizes.large.h"); 
+0

感謝您的信息我會嘗試 – kankele 2012-01-01 22:14:13

+0

如何檢查o [「實體」] [「媒體」]是否存在? – kankele 2012-01-01 22:32:58

+0

如果內部有多個模塊,我如何查看'media'。 – Si8 2017-01-27 19:00:28