Android API 19之前不支持JSONArray

时间:2015-07-27 07:41:44

标签: java android json

我需要使用JSONArray发送数据,这是不可用的beore android api level 19. Json对象就像 -

myJob = {"data1":['a','b','c'],
      "data2":[1,2,3]
     }

我应该对以前的API级别使用什么?

3 个答案:

答案 0 :(得分:3)

我推测MR。 Gupta在尝试以这种方式创建JSONArray时指的是编译错误:

JSONObject jsonObj = new JSONObject(jsonString);
JSONArray jsonArray = new JSONArray(jsonObj.getJSONArray("results"));

Android Studio提供了这个提示:

调用需要API级别19(当前最小值<&lt; 19)

以下是构建JSONArray的正确方法之一:

JSONArray resultsJsonArr = moviesJsonObj.getJSONArray("results");

答案 1 :(得分:1)

您可以在API 19下使用Json Object和Json Array。

JSONObject data1 = new JSONObject();
 data1.put("id", "2");
 data1.put("name", "John");
JSONObject data2 = new JSONObject();
 data2.put("id", "2");
 data2.put("name", "John");

JSONArray jsonArray = new JSONArray();// this is Json Array

jsonArray.put(data1);
jsonArray.put(data2);

注意:看起来你Json不合适。请使用在线json验证器http://json.parser.online.fr/

进行检查和变更

答案 2 :(得分:0)

JSONArray = new JSONArray(stringJsonArray); //无法在api 19下面使用。

要使用它,有一个技巧。

String str = "[1,2,3,4]"; //example string.

String json = "{\"data\":" + str + "}";  //this is trick.

JSONObject obj = new JSONObject(json);

JSONArray array = obj.getJSONArray("data");