当前位置: 首页 > 知识库问答 >
问题:

从JSONObject创建JSONArray

梁丘佑运
2023-03-14

大家好

int i = 0;
JSONArray jsonArray = new JSONArray();
String line;

while ((line = bufferedReader.readLine()) != null) {
    JSONObject rule = new JSONObject().put("rule", line);
    jsonArray.put(i,rule);
    i++;
}
return (new JSONObject().put(jsonStrings.REQUEST_RULES_ALL_RESPONSE, jsonArray));
{"REQUEST_RULES_ALL_RESPONSE":[ 
        {"rule":"something"},
        {"rule":"something"},
        {"rule":"something"}  ]}
//this returns the object as described above
JSONObject jsonObject = serverData.SendData(new JSONObject().put(jsonStrings.REQUEST_RULES_ALL, " ")); 

//Trying to Convert to JSONArray, the get strings are correct, 
//notice the REQUEST and REQUEST RESPONSE.

//problem line below
JSONArray JSONFirewallRules = new JSONArray ((JSONArray)jsonObject.get(jsonStrings.REQUEST_RULES_ALL_RESPONSE));  

错误:org.json.jsonException:不是原始数组:类org.json.jsonArray

我不明白为什么这是一个问题。我想从对象中获得JSONArray。

共有1个答案

红甫
2023-03-14

在有问题的行中,使用getJSONArray而不是强制转换为JSONArray:

JSONArray JSONFirewallRules = jsonObject.getJSONArray(jsonStrings.REQUEST_RULES_ALL_RESPONSE); 

但是,该异常不是强制转换异常,而是一个构造函数异常,在此异常中,您试图从一个不受支持的项列表构建一个JSONArray对象,这是另一个JSONArray:)

 类似资料:
  • 问题内容: 我创建了一个简单的POJO: 经过一番搜索,我发现了这一点: 但是有了这个我得到了错误: 我找到了另一个解决方案: 但是这种方法不存在。 那么如何将POJO转换为JSON? 问题答案: 只需使用java Gson API : 然后您可以从json 创建一个,如下所示: 看看 GSON用户指南 ,这 SIMPLE GSON实例 的详细信息。

  • 我需要将字符串转换为JSONObject

  • 问题内容: 我有这样的数据: 新闻项目: ID 标题 日期 文本 可能有许多NewsItems说10。我必须将它们发送到jquery。 我正在这样做: 这将创建一个JSON字符串,如下所示: 这是正确的方法吗? 如何解析此字符串,以便可以在jQuery中获取每个新闻项对象,以便可以访问attr。 像这样: 或者,如果这是创建JSON字符串的错误方法,请提出一些更好的方法,并以jQuery分析为例。

  • 问题内容: 我正在解决有关作为服务器响应的JSONObject的问题。 正如您在响应中看到的那样,我正在解析JSONObject并创建syncresponse,synckey作为 JSON对象 createdtrs,modtrs,deletedtrs作为 JSONArray 。我想从Deletedtrs访问JSONObject,以便可以将它们分开并使用这些值。即我想提取公司编号,用户名,日期等。

  • 下面是我使用的代码 这就是 API 需要发布的方式 我收到一个错误,指出“另一个.child字段是必需的。” 我如何通过restAsared发布这个?其他不需要通过嵌套发布的API可以工作,所以我假设这就是它失败的原因。