2012-02-09 4 views
1

나는 이러한 종류의 클래스의 배열이 있습니다값 개체의 배열을 json으로 변환하는 방법?

public class IndexVO { 
    public int myIndex; 
    public String result; 
} 

을 그리고 이것은 내 배열 :

 IndexVo[] myArray = { indexvo1, indexvo2 }; 

내가 JSON이 배열을 변환 할 어떻게 어떤 생각?

답변

5

배열에 지원되지 않는 클래스의 객체가 포함되어 있기 때문에 JSONArray mJSONArray = new JSONArray(Arrays.asList(myArray))만큼 쉽지는 않습니다.

JSONArray mJSONArray = new JSONArray(); 
for (int i = 0; i < myArray.length; i++) 
    mJSONArray.put(myArray[i].toJSON()); 

그리고 당신의 IndexVo 클래스에 toJSON() 방법을 추가 : 둘 이상의 클래스에 대한 JSON을 생성해야하는 경우

public JSONObject toJSON() { 
    JSONObject json = new JSONObject(); 
    ... 
    //here you put necessary data to json object 
    ... 
    return json; 
} 

그러나, 다음 고려 따라서 당신은 조금 더 많은 노력을해야 할 것이다 자동으로 수행하는 라이브러리, 예를 들어 flexjson.

+1

또는 toString() 메서드를 재정 의하여 String.format ("myIndex": \ "% d \", \ "결과 \": \ "% s \"} ", myIndex, restult) ; 그리고'여전히 JSONArray mJSONArray = new JSONArray (Arrays.asList (myArray)); ' – Selvin

+0

그래, 좋은 생각이긴하지만, 일반적으로 디버그 출력 목적으로'toString()'을 사용한다 .. –

+0

... 그리고 일반적으로 덜 읽을 수있을 것입니다 ... 그래서 이것이 json으로 변환해야하는 유일한 클래스이고 프로젝트가 크지 않은 경우 toString 메소드를 재정의 할 것입니다 ... 큰 프로젝트의 경우 대답이 더 우수합니다 – Selvin

관련 문제