2016-07-04 4 views
1

내가 시도,이 JSON 값을 가져올 방법 혼란 스러워요하지만 난 그것에 대해 확실하지 않다가 :Java에서이 JSON 값을 가져 오는 방법은 무엇입니까?

http://api.openweathermap.org/data/2.5/weatherq=London,uk&appid=d7b900681c37193223281142bd919019 

이 난 그냥 JSON을 가져 오기 위해 노력하고 방법은 다음과 같습니다

이 내 JSON의 URL입니다 값.

JSONObject ishu=new JSONObject(String url);//URL OF MY JSON!! 
JSONObject COORD=ishu.getJSONObject("coord"); 
String LON=1.getString("lon"); 
String LAT=1.getString("lat"); 

JSONObject ishu1=ishu.getJSONObject("weather"); 
JSONArray jsonarray=new JSONArray(jsonStr); 

for(int i=0;i<jsonarray.length();i++) 
{ 
    JSONObject jsonobject=jsonarray.getJSONObject(i); 
    String id=jsonobject.getString("id"); 
    String main=jsonobject.getString("main"); 
    Stirng description=jsonobject.getString("description"); 
    String icon=jsonobject.getString("icon"); 
} 

JSONObject ishu2=ishu.getJSONObject("base"); 
String MAIN=ishu.getString("main"); 
String TEMP=MAIN.getString("temp"); 
String PRESSURE=MAIN.getString("pressure"); 
String HUMIDITY=MAIN.getString("humidity"); 
String TEMP_MIN=MAIN.getString("temp_min"); 
String TEMP_MAX=MAIN.getString("temp_max"); 

JSONObject WIND=ishu.getJSONObject("wind"); 
String SPEED=WIND.getString("speed"); 
String DEG=WIND.getString("deg"); 
String GUST=ishu.getString("gust"); 

JSONObject ishu4=ishu.getJSONObject("rain"); 
JSONObject 1H=ishu4.getJSONObject("1h"); 

JSONObject ishu5=ishu.getJSONObject("clouds"); 
String ALL =ishu5.getString("all"); 

JSONObject ishu6=ishu.getJSONObject("dt"); 
String SYS=ishu.getString("sys"); 
String TYPE=SYS.getString("type"); 
String ID=SYS.getString("id"); 
String MESSAGE=SYS.getString("message"); 
String COUNTRY=SYS.getString("country"); 
String SUNRISE=SYS.getString("sunrise"); 
String SUNSET=SYS.getString("sunset"); 

JSONObject ishu7=ishu.getJSONObject("id"); 
JSONObject ishu8=ishu.getJSONObject("name"); 
JSONObject ishu9=ishu.getJSONObject("cod"); 
+0

당신이 오류를 얻을 수 있습니까 할 수 있습니까? 당신이 겪고있는 문제는 무엇입니까? – Muthu

+0

이것은 실제로 사용중인 라이브러리에 따라 다릅니다. –

+0

'JSONObject'는 URL에서 데이터를 가져 오지 않습니다. URL에서 요청한 데이터가 아닌 JSON으로 구문 분석을 시도합니다. 하지만 사실은'새로운 JSONObject (String url)'이 유효한 Java가 아니라는 사실을 감안할 때 ... – dhke

답변

0

는 RESTful 서비스 (기본 HttpURLConnection의/Volly 라이브러리)를 사용하여 JSON 파일을 다운로드하고 위의 코드를 다운로드 한 문자열을 제공합니다.

더 나은 구문 분석 도구를 사용하면 수동으로 수행하는 것이 더 좋습니다. http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/

GSon은 사용하기 쉽고 Google에서 제공합니다.

아래처럼 간단는

ModelClass object = new Gson().fromJson(JsonString, ModelClass.class); 
+0

사실 내 질문에 그냥 (JSONObject) 및 JSONArray (JSONArray) 올바른 위치에 있는지 여부를 확인하는 것입니다, 내 json URL을 열고 JSONObject 및 JSONArray, JSONArray 사용하여 값을 가져 오기 시작할 때 깊이 쓰지 않습니다. android studio rightnow에서. –

0

당신이 먼저 api.openweathermap.com의 응답을 얻을 필요가 보인다. is 당신의 JSON에서

URL url= new URL("<your url here>"); 
HttpURLConnection connnection = (HttpURLConnection) url.openConnection(); 
connnection.setRequestMethod("GET"); 
InputStream is = connnection.getInputStream(); 

읽기, 그 후에 당신은 JSONObject obj = new JSONObject(<your string here>);

+0

사실 내 질문에 그냥 (JSONObject) 및 JSONArray (JSONArray) 올바른 위치에 있는지 여부를 확인하는 것입니다, 내 json URL을 열고 JSONObject 및 JSONArray, JSONArray 사용하여 값을 가져 오기 시작할 때 깊이 쓰지 않습니다. android studio rightnow에서. –

+0

@ishumishra json의 예를 게시 할 수 있습니까? – madatx

+0

json의 예를 원하십니까? 당신이주고 자하는 것을 얻지 못하고 있습니까? –

관련 문제