2012-01-01 3 views
2

을 얻기?내가 JSON 객체를 가지고 있고이 값을 얻으려면 JSON 객체 노드

{ 
    "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

+0

방금 ​​시도했습니다. 감사합니다 – kankele

답변

0

것은 내가 JSON 순수 직렬화 객체 생각하는 것을 선호 ... 이유만으로의 질문에 무관 여분의 라인입니다 - 처음과 마지막 것은 내가 그것이 그렇게하고 싶지는 이를 내가 작업 할 객체로 역 직렬화합니다.

내가 당신에게 C#에서 그것을 할 수있는 최선의 방법을 말할 수 없다,하지만 난 JSON.NET

JSON.NET는 (웹 사이트에서 인용)을하게됩니다 사용하여 행운을 했어 "JSON에 LINQ가 좋다 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

+0

O [ "entities"] [ "media"]가 있는지 어떻게 확인합니까? – kankele

+0

내부에 여러 개의 블록이있는 경우 어떻게 '미디어'를 살펴볼 수 있습니까? – Si8