将JSON编码数组中的字符串放入Java ArrayList

将JSON编码数组中的字符串放入Java ArrayList,java,php,arrays,json,arraylist,Java,Php,Arrays,Json,Arraylist,我创建了一个数组,并用SQL数据库中的行值填充该数组,然后将该数组编码为JSON对象: $league = array(); while(mysqli_stmt_fetch($result)){ $league[] = $leagueName; } json_encode($league); 如何从数组中检索项,然后将它们插入ArrayList?目前,我的Java代码中包含以下内容: HttpEntity entity = httpResponse.getEntity(); Str

我创建了一个数组,并用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);

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

我可以通过简单地创建一个JSONArray(而不是JSONObject)来解决这个问题,如下所示:

HttpEntity entity=httpResponse.getEntity();
字符串结果=EntityUtils.toString(实体);
JSONArray JSONArray=新JSONArray(结果);
//JSONObject jObject=新JSONObject(结果);
if(jsonArray.length()=0){
returnedLeague=null;
}
否则{
for(int i=0;i

事实证明,如果字符串格式正确,就可以从中创建JSONArray,这是json_encode函数为我所做的。

您当前的结果具有这些索引0,1,2
[“leagueA”、“leagueB”、“leagueC”]
的意思是
数组('0'=>“leagueA”…)
在json中,你要么得到一个数组(你的第一个例子),要么得到一个对象(key:value),这是你的第二个例子(除了它会被
{}
包围)。但是您应该能够通过
array[0]
array[1]
从第一个示例中获取值。索引:0、1、2…等都是隐式的。请创建一个
JSONArray
,只需在元素上迭代即可。有了一个简单的for语句,你就可以访问索引了。@SotiriosDelimanolis这对我很有用。我不知道字符串“result”的格式允许我使用JSONArray。在我创建了一个JSONArray之后,我能够对它进行迭代并添加到ArrayList中。谢谢你的知识。
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));
                }
            }