这就是我想做的。我想从mysql数据库中检索两个数组。这两个阵列分别进行回波:

echo json_encode(array("friendrequest"=>$friendrequest));
echo json_encode(array("friendresult"=>$friendresult));

这是我用来处理结果字符串的代码:
public void onResponse(String response) {
        Log.d("Response", response);
        try {

            JSONObject jsonObj = new JSONObject(response);

            JSONArray ja_data = jsonObj.getJSONArray("friendresult");
            String[] from = {
                "first_name",
                "anytimer_count",
                "relationship_status"
            }; //string array
            int[] to = {
                R.id.textListView1,
                R.id.textListView2,
                R.id.textListView3
            }; //int array of views id's
            JSONArrayAdapter arrayListAdapter = new JSONArrayAdapter(MyFriendsActivity.this, ja_data, R.layout.custom_list_items, from, to);
            list.setAdapter(arrayListAdapter);


            JSONArray ja_requests = jsonObj.getJSONArray("friendrequest");
            int ja_lengths = ja_requests.length();
            Log.d("Response", Integer.toString(ja_lengths));

        } catch (JSONException e) {
            Log.e("MyFriendsActivity", "unexpected JSON exception", e);
        }

现在,处理代码中第2行记录的响应给出了以下信息:
回应=
{
  "friendrequest": [
    {
      "first_name": "Tom",
      "anytimer_count": "0",
      "relationship_status": "0"
    },
    {
      "first_name": "Bert",
      "anytimer_count": "0",
      "relationship_status": "0"
    }
  ]
}{
  "friendresult": [
    {
      "first_name": "Luuk",
      "anytimer_count": "0",
      "relationship_status": "1"
    }
  ]
}

它包含所有应该发送的值,并且是正确的。
问题是,我的处理代码只能识别php脚本中首先编码的数组。基本上,如果我交换php脚本中两行代码的位置,“friendrequest”将包含值,而“friendresult”则不包含值,反之亦然。我在这里做错什么了?
获取时出错:
json.JSONException:friendresult没有值

com.example.tomva.anytimereverywhere.MyFriendsActivity$3.onResponse(MyFriendsActivity.java:84)
第84行是以下行:
JSONArray ja_data = jsonObj.getJSONArray("friendresult");

最佳答案

您必须在数组中传递您的json才能将它们全部提取出来。
应该是:

[
<?php
   echo json_encode(array("friendrequest"=>$friendrequest));
   echo ",";
   echo json_encode(array("friendresult"=>$friendresult));
?>
]

Related answer
或者你可以用下面的
echo json_encode(array("friendrequest"=>$friendrequest,"friendresult"=>$friendresult));

07-26 00:52