2012-02-09 63 views

回答

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()); 

並添加toJSON()方法您IndexVo類:

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

然而,如果你需要生成多個類JSON,然後再考慮例如,它自動執行它的庫,flexjson

+1

或覆蓋toString()方法來'返回的String.format( 「{\」 myIndex \ 「:\」 %d \ 「\ 」結果\「:\ 」%s \「 的}」,myIndex,restult) ;「',他仍然可以使用'JSONArray mJSONArray =新JSONArray(Arrays.asList(myarray的));' – Selvin 2012-02-09 08:39:07

+0

沒錯,好主意,但是,一般我用'的toString()'爲 – 2012-02-09 08:46:06

+0

調試輸出的目的...和通常它的可讀性會降低......所以如果這是唯一需要轉換爲json的類並且項目不是很大,那麼我會去覆蓋toString方法...對於大型項目,您的回答是更好的 – Selvin 2012-02-09 08:59:15