【问题标题】:JSONArray not supported before Android API 19在 Android API 19 之前不支持 JSONArray
【发布时间】:2015-07-27 07:41:43
【问题描述】:

我需要使用 JSONArray 发送数据,这在 android api level 19 之前不可用。Json 对象就像 -

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

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

【问题讨论】:

  • 什么是 api 级别 19 之前不可用的?
  • org.json.JSONArray 从 API 级别 1(one) 可用。
  • 您遇到哪种错误?你能用一些代码或logcat详细说明你的问题吗?
  • 我认为只有 remove() 函数仅适用于 API 19 及更高版本

标签: java android json


【解决方案1】:

我猜是先生。 Gupta 在尝试以这种方式创建 JSONArray 时指的是编译错误:

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

Android Studio 给出了这个提示:

调用需要 API 级别 19(当前最低为

这是构造 JSONArray 的正确方法之一:

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

【讨论】:

  • 你拯救了我的一天,伙计!
【解决方案2】:

您也可以使用 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/进行检查和验证

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 2018-02-07
      • 2018-09-17
      • 1970-01-01
      • 2012-05-17
      • 2014-08-08
      相关资源
      最近更新 更多