【问题标题】:Put strings from JSON-encoded array into Java ArrayList将 JSON 编码数组中的字符串放入 Java ArrayList
【发布时间】:2016-06-27 06:40:01
【问题描述】:

我创建了一个数组并用 SQL 数据库中的行值填充它,然后将该数组编码为 JSON 对象:

$league = array();

while(mysqli_stmt_fetch($result)){
    $league[] = $leagueName;
}

json_encode($league);

我将如何从数组中检索项目,然后将它们插入到 ArrayList 中?我目前在我的 Java 代码中有这个:

HttpEntity entity = httpResponse.getEntity();
String result = EntityUtils.toString(entity);
JSONObject jObject = new JSONObject(result);

目前,“结果”采用以下格式:"["leagueA", "leagueB", "leagueC"]",我希望看到类似"[0:"leagueA", 1:"leagueB", 2:"leagueC"]" 的内容,这样我就可以在循环中引用返回的值。有没有办法将返回的值插入ArrayList 而无需手动解析返回的“结果”?

【问题讨论】:

  • 您当前的结果有这些索引 0,1,2。 ["leagueA", "leagueB", "leagueC"] 表示Array('0'=>"leagueA".......)
  • 好吧,在 json 中,你要么得到一个数组(你的第一个例子),要么你得到一个对象(key: value),这是你的第二个例子(除了它会被 @987654328 包围@) 。但是您也应该能够通过array[0]array[1] 从您的第一个示例中获取值。索引:0、1、2...等是隐含的。
  • 创建一个JSONArray 并只遍历元素。使用简单的 for 语句,您就可以访问索引。
  • @SotiriosDelimanolis 这对我有用。我不知道字符串“结果”的格式允许我使用 JSONArray。创建 JSONArray 后,我能够对其进行迭代并添加到 ArrayList。谢谢你的知识。

标签: java php arrays json arraylist


【解决方案1】:

我可以通过像这样简单地创建一个 JSONArray(而不是 JSONObject)来解决这个问题:

HttpEntity entity = httpResponse.getEntity();
            String result = EntityUtils.toString(entity);
            JSONArray jsonArray = new JSONArray(result);
            //JSONObject jObject = new JSONObject(result);
            if(jsonArray.length() == 0){
                returnedLeague = null;
            }
            else{
                for(int i = 0; i < jsonArray.length(); i++){
                    returnedLeague.add(jsonArray.getString(i));
                }
            }

事实证明,如果格式正确,可以从字符串创建 JSONArray,json_encode 函数为我做了。

【讨论】:

    猜你喜欢
    • 2015-06-25
    • 2018-04-25
    • 1970-01-01
    • 2013-09-22
    • 2016-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多