2013-10-15 5 views
0

URL에서 JSON 파일을 읽어야하는 애플리케이션에서 Eclipse를 사용하고 있습니다.JSON이 객체, 배열 없음을 읽습니다.

내가 사용하고 코드는 다음 중 하나입니다 :

http://collegewires.com/android/2012/06/json-parsing-in-android/

좋아, 내가 JSON 파일을 읽기 위해 사용하고 클래스라고 Parser.java :

package com.cw.json; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.io.UnsupportedEncodingException; 

import org.apache.http.HttpEntity; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.ClientProtocolException; 
import org.apache.http.client.methods.HttpPost; 
import org.apache.http.impl.client.DefaultHttpClient; 
import org.json.JSONException; 
import org.json.JSONObject; 

public class Parser { 

    static InputStream is = null; 
    static JSONObject jsonObject = null; 
    static String json = ""; 
    // class constructor 
    public Parser() { 

    } 

    public JSONObject getJSONFromUrl(String url) { 

     // Making HTTP request 
     try { 
      DefaultHttpClient httpClient = new DefaultHttpClient(); 
      HttpPost httpPost = new HttpPost(url); 

      HttpResponse httpResponse = httpClient.execute(httpPost); 
      HttpEntity httpEntity = httpResponse.getEntity(); 
      is = httpEntity.getContent();   

     } catch (UnsupportedEncodingException exception) { 
      exception.printStackTrace(); 
     } catch (ClientProtocolException exception) { 
      exception.printStackTrace(); 
     } catch (IOException exception) { 
      exception.printStackTrace(); 
     } 

     try { 
      BufferedReader reader = new BufferedReader(new InputStreamReader(
        is, "iso-8859-1"), 8); 
      StringBuilder sBuilder = new StringBuilder(); 
      String line = null; 
      while ((line = reader.readLine()) != null) { 
       sBuilder.append(line + "\n"); 
      } 
      is.close(); 
      json = sBuilder.toString(); 
     } catch (Exception exception) { 
      exception.printStackTrace(); 
     } 

     // Parsing the string to a JSON object 
     try { 
      jsonObject = new JSONObject(json); 
     } catch (JSONException exception) { 
      exception.printStackTrace(); 
     } 

     // JSON String 
     return jsonObject; 

    } 
} 

I 직접적으로 ARRAY 인 JSON 파일을 읽는 데이 코드를 사용했지만 코드에서 오류가 발생했습니다.

제 질문은 : 항상 Object를 읽는 대신 Array를 읽을 수 있습니까 ?? 다른 수업을 사용하고 계신가요?

+0

오류 로그도 함께 게시하십시오. –

+0

"다른 클래스를 사용하고 있습니까?" 당신은 다른 도구 또는 라이브러리를 의미합니다. 그러면 스택 오버플로에 대한 질문에서 그 부분이 벗어납니다 : "도구, 라이브러리 또는 좋아하는 오프 사이트 리소스를 추천하거나 찾도록 요청하는 질문은 스택 오버플로가 유치하기 쉬운 주제가 아닙니다. 고소 된 답변 및 스팸을 포함하는 대신 문제를 설명하고 지금까지 해결 된 문제를 설명합니다. " –

+0

아마 [Jackson] (http://jackson.codehaus.org/)를 살펴 봐야 할 것입니다. JSON 직렬화/직렬화 해제를위한 훨씬 더 완벽한 라이브러리입니다. – jwismar

답변

0

Parser.java를 수정하여 객체가 아닌 배열을 가져 오도록하십시오. 그리고 초보자를위한 자바 서적을 구입하십시오. JAVA

public JSONArray getJSONFromUrl(String url) { 
    .... 
    static JSONArray jsonArray = null; 
    .... 
    // Parsing the string to a JSON Array 
    try { 
      jsonArray = new JSONArray(json); 
    } catch (JSONException exception) { 
      exception.printStackTrace(); 
    } 
    return jsonArray; 
    } 
관련 문제