java - 在一个 PHP 中,android 尝试发送多个 json 格式,但只接收到一个。我应该怎么办?
问题描述
在一个 PHP 中,android 尝试发送多个 json 格式,但只接收到一个。我应该怎么办?
Response.Listener<String> responseListener = new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
Log.d("GGGG","onResponse start");
JSONObject jsonResponse = new JSONObject(response);
Log.d("GGGG","test" );
JSONArray jsonArray = jsonResponse.getJSONArray("Search");
Log.d("GGGG","test1" );
JSONArray jsonArray2 = jsonResponse.getJSONArray("Favorite");
Log.d("GGGG","test2" );
对 Logcat.d 的日志输出到“test1”并且不输出。我认为我们没有从 'getJSONArray ("Favorite") 中得到值。我应该怎么办?
//-------PHP------//
$userID =$_POST["userId"];
$keyWord = $_POST["keyWord"];
// $keyWord = "na";
// $userID ="test";
//데이터베이스에 값을 넣는부분
$statement ="SELECT * from music where music_title like '%$keyWord%' or music_singer like '%$keyWord%'";
// echo $statement;
// exit;
$result = mysqli_query($con,$statement);
$resultArray = array();
while($rows=mysqli_fetch_assoc($result)){
$resultArray[]=$rows;
}
$statement ="SELECT * from favorite_playlist WHERE user_id ='$userID'";
$result = mysqli_query($con,$statement);
$resultArray2 = array();
while($rows=mysqli_fetch_assoc($result)){
$resultArray2[]=$rows;
}
//$response["success"] = true;//success라는 인덱스에 true값을 넣어줌
header('Content-Type: application/json; charset=utf8');
$json = json_encode(array("Search"=>$resultArray), JSON_PRETTY_PRINT+JSON_UNESCAPED_UNICODE);
$json2 = json_encode(array("Favorite"=>$resultArray2), JSON_PRETTY_PRINT+JSON_UNESCAPED_UNICODE);
//echo json_encode($resultArray);//JSON형식으로 출력
echo $json;
echo $json2;
下面是php结果。
--------PHP示例结果-----
{
"Search": [
{
"music_id": "1",
"music_title": "나빠(NAPPA)",
"music_singer": "Crush",
"music_img": "https:\/\/wallkpop.com\/wp-content\/uploads\/2019\/08\/%EB%82%98%EB%B9%A0NAPPA-2.jpg"
}
]
}{
"Favorite": [
{
"user_id": "test",
"music_id": "3",
"play_time": "2019-09-05 09:35:21"
},
{
"user_id": "test",
"music_id": "4",
"play_time": "2019-09-05 09:36:20"
},
{
"user_id": "test",
"music_id": "5",
"play_time": "2019-09-05 13:02:34"
},
{
"user_id": "test",
"music_id": "2",
"play_time": "2019-09-05 13:02:36"
}
]
}
解决方案
只能接收一个响应字符串(JSON 或 XML 编码)。你有两个选择:
- 将它们分成两个不同的 Api 路由
- 将它们合并为一个 JSON 字符串
在你的情况下,我会选择第一个选项。
推荐阅读
- swift - swift中的矩阵乘法 - simd
- thymeleaf - Thymeleaf - 使用条件设置元标记中的属性
- wpf - 关于事件的 Powershell WPF 更新
- android - 如何在android中解析嵌套的JSON对象
- swift - 关闭应用程序时如何使用动态快速操作[swift]
- mouseclick-event - 在 JavaFX 中为表格行添加点击事件
- c# - 如何将所选项目从 ListBox 绑定到 ComboBox
- sql - SQL Server:返回客户最少日期
- mysql - 创建具有由 CASE 结果确定的值的列
- javascript - tfjs:错误:传递给堆栈的参数张量必须是`Tensor[]`或`TensorLike[]`