2012-04-11 4 views
-1
public void HelloWord { 
     for (int i = 0; i < 20; i++) { 
      Log.d("Great"); 
     } 
    } 

위 코드는 왜 작동하지 않습니까? 값 이름을 얻으려고합니다 아무도 문제가 있는지 알고 있습니까?android json을 구문 분석하는 방법

org.json.JSONException : 값 ... 링크 ... org.json.JSONArray에서 org.json.JSON.typeMismatch에서의 내용.

+1

JSON 응답을 구문 분석하는 것과 아무 관련이 없기 때문에 어쩌면? – MByD

+0

아무 관계가 없나요? 내가 코드를 찾아서 거기에 다른 json 링크를 넣어두면 ... –

+1

그 코드는 이전에 여기에 있었던 코드가 아닙니다 :) – MByD

답변

0

JSON 작동 방식이 누락되었다고 생각합니다. {}에있는 객체는 객체이고 []은 배열을 지정합니다. 그래서 트위터 피드의 루트가 아니 JSONArray하는 된 JSONObject입니다 :

더 이런 식으로 뭔가를 시도 :

JSONObject obj = new JSONObject(mStringBuilder.toString()); 
JSONObject trends = obj.getJSONObject("trends"); 
JSONArray today = trends.getJSONArray("2012-04-10"); 
for (int i = 0; i < today.length(); i++) { 
    JSONObject tag = today.getJSONObject(i); 
    String name = tag.getString("name"); 
    // do whatever with name 
} 

훨씬 쉽게, 그리고 그것이 어떻게 작동하는지는 명확. JSONObjects는 키와 값 사이에 간단한 매핑 사전입니다 - 더 많은 개체, 또는 배열 중 하나를 포함 할 수 있습니다 각 개체 ({})을 ([])와 같은 간단한 정수 이상의 개체

나는 GSON library를 사용하는 것을 선호
+0

오류가 있습니다 ... 2012-04-10 값이 아닙니다. 이유가 무엇입니까? –

+0

당신은 완전히 옳았습니다. 삭제 된 대답 :) – MByD

+0

@ user1106177 내가 잘못 입력했기 때문에 - 그것은'trend.getJSONArray()'가 아닌'obj.getJSONArray()'가되어야했습니다 - 응답에서 수정했습니다 – JRaymond

1

중 하나를 포함 할 수있는 빠르고 효과적인 JSON 파서입니다. 프로젝트에 추가되면 반환되는 데이터를 나타내는 클래스를 만들어야합니다. 그런 다음 당신을 위해 객체를 생성하는 하나의 함수를 호출 할 수 GSON의 사용에

gson.fromJson(); 

유난히 좋은 기사가 http://www.javacodegeeks.com/2011/01/android-json-parsing-gson-tutorial.html에서 찾을 수 있습니다 - 그것은 심지어 예를 들어 트위터를 사용합니다.

관련 문제