2011-05-09 4 views
3

하나의 키에서 다른 중첩 키로 JSON 문자열을 탐색하고 값을 가져 오는 방법은 무엇입니까? 나는 JSON 문자열을 파싱하는 가장 간단한 방법

{ "data" : { "current_condition" : [ { "cloudcover" : "75", 
      "humidity" : "29", 
      "observation_time" : "07:59 PM", 
      "precipMM" : "0.0", 
      "pressure" : "1011", 
      "temp_C" : "19", 
      "temp_F" : "67", 
      "visibility" : "16", 
      "weatherCode" : "116", 
      "weatherDesc" : [ { "value" : "Partly Cloudy" } ], 
      "weatherIconUrl" : [ { "value" : "http://www.worldweatheronline.com/images/wsymbols01_png_64/wsymbol_0002_sunny_intervals.png" } ], 
      "winddir16Point" : "N", 
      "winddirDegree" : "350", 
      "windspeedKmph" : "26", 
      "windspeedMiles" : "16" 
      } ], 
     "request" : [ { "query" : "01801", 
      "type" : "Zipcode" 
      } ], 
     "weather" : [ { "date" : "2011-05-09", 
      "precipMM" : "0.0", 
      "tempMaxC" : "19", 
      "tempMaxF" : "65", 
      "tempMinC" : "10", 
      "tempMinF" : "50", 
      "weatherCode" : "113", 
      "weatherDesc" : [ { "value" : "Sunny" } ], 
      "weatherIconUrl" : [ { "value" : "http://www/images/wsymbols01_png_64/wsymbol_0001_sunny.png" } ], 
      "winddir16Point" : "NNW", 
      "winddirDegree" : "348", 
      "winddirection" : "NNW", 
      "windspeedKmph" : "24", 
      "windspeedMiles" : "15" 
      }, 
      { "date" : "2011-05-10", 
      "precipMM" : "0.1", 
      "tempMaxC" : "13", 
      "tempMaxF" : "56", 
      "tempMinC" : "12", 
      "tempMinF" : "53", 
      "weatherCode" : "122", 
      "weatherDesc" : [ { "value" : "Overcast" } ], 
      "weatherIconUrl" : [ { "value" : "http://www/images/wsymbols01_png_64/wsymbol_0004_black_low_cloud.png" } ], 
      "winddir16Point" : "NNE", 
      "winddirDegree" : "12", 
      "winddirection" : "NNE", 
      "windspeedKmph" : "31", 
      "windspeedMiles" : "19" 
      } 
     ] 
    } } 

그래서 난 내 자신의 질문에 대답 다음 문자열이 있습니다 이 경우 다른 사람이 신속하게 가치를하려는 : 이것은 내가 찾고 있었던 것입니다.

JSONObject j = new JSONObject(strResponse); 

String weatherDesc = jObject.getJSONObject("data").getJSONArray("weather").getJSONObject(0).getJSONAr­ray("weatherDesc").getJSONObject(0).getString("value"); 
+2

사용중인 언어를 지정하지 않았습니다. 이 페이지의 중간 부분을보고 사용중인 솔루션을 찾으십시오. http://json.org/ – Gazler

+1

OP의 게시 내역을 볼 때 C#에 베팅을 할 것입니다. 아니면 자바 스크립트에서 이것을하고 싶습니까? – BalusC

+0

@BalusC : 그렇지만 그는 다시 .net에서 웹 서비스를 작성하고 android에서 웹 서비스를 사용하는 것에 관한 한 가지 질문을합니다. sooooo ... –

답변

3

거의 모든 언어로 JSON 라이브러리가 있습니다. 네가 하나를 제안한다면 나는 너에게 뭔가를 가르쳐 줄 수있을 것이다. 한편

, 여기에 몇 가지 :
  • Javascript serializes its objects in JSON so it's super easy
  • C# library

    등등. 나는 당신이 선택한 언어에 대한 빠른 구글을 제안한다.

  • +0

    감사합니다. 죄송합니다. 자바와 Android 1.5는 언급하지 않았습니다. IDE로 Eclipse를 사용하고 있습니다. Google의 Gson과 Json을 보았지만 노드를 찾고 C# 데이터 집합 또는 xpath 에서처럼 값을 가져올 수있는 샘플을 찾을 수 없었습니다. – snail

    +0

    @webservicenewbie 마지막 링크 인 Android 1이 찾고있는 설명서 여야합니다. –

    +0

    실제로 안드로이드의 JSONObject를 사용하는 것이 쉽지 않습니다. OP에서 문서를 보지 않았습니까? –

    1

    일반적으로 특정 언어로 이미 구축 된 라이브러리를 사용하며 어떤 언어로 데이터를 읽으려고합니까? 많은 언어에서 두 개의 라이브러리를 사용할 수 있으며 일부 언어는 JavaScript와 같이 지원이 가능합니다.

    데이터를 이해하기 만하면 꽤 읽을 수 있습니다 ...

    관련 문제