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