将string转换为JsonArray

如何正确地将此string转换为jsonArray?

{ "myArray": [ { "id": 1, "att1": 14.2, "att2": false }, { "id": 2, "att1": 13.2, "att2": false }, { "id": 3, "att1": 13, "att2": false } ]} 

JSONArray jArray = new JSONArray(STRING_FROM_ABOVE); 结果在jArray.length = 1它是我第一次与json联系:)

Solutions Collecting From Web of "将string转换为JsonArray"

尝试这个 :

 JSONObject jObject = new JSONObject(STRING_FROM_ABOVE); JSONArray jArray = jObject.getJSONArray("myArray"); 

“string_from_above”不是Json数组,它是一个Json对象,包含一个属性(myArray),它是一个Json数组;)

你可以这样做:

 for (int i = 0; i < jArray.length(); i++) { JSONObject jObj = jArray.getJSONObject(i); System.out.println(i + " id : " + jObj.getInt("id")); System.out.println(i + " att1 : " + jObj.getDouble("att1")); System.out.println(i + " att2 : " + jObj.getBoolean("att2")); } 

在parsing时,将值添加到对象和ArrayLists,或者您想要使用它的方式。 祝你好运。

 JSONObject jo = new JSONObject(STRING_FROM_ABOVE); JSONArray rootArray= jo.getJSONArray("myArray"); int rootArrayLength=rootArray.length(); for(int i=0;i<rootArrayLength;i++){ int id= rootArray.getJSONObject(i).getInt("id"); // do same for others too and create an object } // create object and make a list 

只是在这里混合另一种方法,我想build议看看Gson 。 Gson是一个使Java对象序列化和反序列化的库。 例如,用你的string,你可以这样做:

 // Declare these somewhere that is on the classpath public class ArrayItem{ public int id; public double att1; public boolean att2; } public class Container{ public List<ArrayItem> myArray; } // In your code Gson gson = new Gson(); Container container = gson.fromJson(json, Container.class); for(ArrayItem item : container.myArray){ System.out.println(item.id); // 1, 2, 3 System.out.println(item.att1); // 14.2, 13.2, 13.0 System.out.println(item.att2); // false, false, false } 

同样,你也可以很容易地倒退。

 String jsonString = gson.toJson(container); // jsonString no contains something like this: // {"myArray":[{"id":1,"att1":14.2,"att2":false},{"id":2,"att1":13.2,"att2":false},{"id":3,"att1":13.0,"att2":false}]} 

使用像Gson提供的主要好处是你现在可以默认使用所有的Javatypes检查,而不必自己pipe理属性名称和types。 它也允许你做一些奇特的东西,如复制types层次结构,使pipe理大量的JSON消息快照。 它适用于Android,而且它本身很小,不需要额外的依赖。

看看JQuery,特别是Parse函数。 这将直接parsing一个Json数组到一个Object中。