我得到android的双jsonarray提取并没有得到结果返回
我得到android的双jsonarray提取并没有得到结果返回
这是输出我得到我需要得到name的值的图像。我正在尝试的代码是
JSONArray jsonArray = new JSONArray(result);
JSONObject jsonObject = new JSONObject(jsonArray);
String name = jsonObject.getString("name");
但它不工作。谁能帮我对此 非常感谢
这是在其我就
$aircraftId = filter_input(INPUT_POST, 'aircraftId');
$arr = array();
$stmt = $db->prepare("SELECT * FROM temp WHERE aircraft_id = :aid");
$stmt->execute(array(':aid' => $aircraftId));
$data = $stmt->fetchAll(PDO::FETCH_OBJ);
$x = 0;
foreach ($data as $in)
{
$arr[$x][] = array(
'id' => $data->id,
'name' => $data->name,
'label' => $data->label,
'description' => $data->description,
'type' => $data->type,
'value' => $data->value,
'deliminator' => $data->deliminator,
'deliminator2' => $data->deliminator2,
'title' => $data->title,
'part_number' => $data->part_number,
'serial_number' => $data->serial_number,
'mm' =>$data->mm,
'cost' =>$data->cost,
'category' =>$data->category,
'timeInstall' => $data->timeInstall,
'customType' => $data->customType,
'engineNumber' => $data->engineNumber,
'activateMargin' => $data->activateMargin,
'margin0' => $data->margin0,
'margin1' => $data->margin1,
'margin2' => $data->margin2,
'margin3' => $data->margin3,
'displayField' => $data->displayField,
'tso1' => $data->tso1,
'tso2' => $data->tso2,
'tso3' => $data->tso3,
'tso4' => $data->tso4,
'interval1' => $data->interval1,
'interval2' => $data->interval2,
'interval3' => $data->interval3,
'interval4' => $data->interval4,
'rmg1' => $data->rgm1,
'rmg2' => $data->rmg2,
'rmg3' => $data->rmg3,
'rmg4' => $data->rmg4,
'lcw1' => $data->lcw1,
'lcw2' => $data->lcw2,
'lcw3' => $data->lcw3,
'lcw4' => $data->lcw4
);
$x = $x+1;
}
echo json_encode($arr);
你是不是解析响应正确。 记住“[”显示JSONArray已启动,并且在响应中有两个[这意味着在获取JSONObject内的JSONObject和可能的数据之前,您需要获取两个JSONArrays。
试试这个
try {
JSONArray responseArray = new JSONArray(result);
JSONArray innerArray = responseArray.getJSONArray(0);
for (int i = 0; i < innerArray.length(); i++) {
JSONObject jsonObject = innerArray.getJSONObject(i);
String id = jsonObject.getString("id");
String name = jsonObject.getString("name");
}
} catch (JSONException e) {
e.printStackTrace();
}
@ Tabish的代码,甚至更好,如果你是第一个阵列内获得多个阵列。
非常感谢它工作 – bufferking
高兴地帮助:) – Raheel
你的第一线工作的后端PHP代码是正确的JSONArray jsonArray = new JSONArray(result);
下一页说法应该是一个循环。遍历jsonArray对象。例如:
for(int i = 0; i < jsonArray.length(); i++) {
JsonObject jsonObject = jsonArray.getJsonObject(i);
String name = jsonObject.getString("name");
}
你可以试试吗?
有两个JsonArrays,然后把JSONObject想出了这么
JsonArray jsonArray = new JsonArray(results);
for (int i = 0 ; i< jsonArray.length() ; i++){
JsonArray jsonArray1 = jsonArray.get(i);
for(int j = 0 ; j < jsonArray1.length() ; j++){
JsonObject jsonObject = jsonArray1.get(j);
String name = jsonObject.getAsString("name");
}
}
添加代码Json解析逻辑正确 – Gaurav
您可以发布您正在使用的后端脚本来获取json响应。 –
我认为这是由于你格式不正确的JSON字符串。在这里添加你在吐司中显示的JSON响应,以及如何在java代码中进行解析? –