Data yang Anda ambil dari MySQL tidak dalam JSON yang benar format dan tidak dapat dikonversi ke array ganda. Sebuah JSONArray adalah kumpulan JSONObject s. Saat ini Anda mendapatkan apa yang tampak sebagai Array tunggal diformat seperti [9.32, 5.22, 10.201 ... ]
Yang harus Anda miliki adalah JSONArray yang berisi JSONObjects
points:[{1:9.32},{2:5.22}]
Anda kemudian dapat mengekstrak JSONObjects dari JSONArray dan cukup akses nilai angka secara langsung
JSONArray points = new JSONArray(pointsString);
JSONObject firstPoint = points.getJSONObject(1);
double value = firstPoint.getDouble("1");
anda dapat dengan mudah mengonversi ini menjadi loop untuk menjalankan seluruh JSONArray dari nilai
Pembaruan - Masalah PHP
String Anda tidak kembali dalam JSON yang tepat format karena Anda membuang seluruh hasil jika kueri Anda ke dalam satu larik. Coba sesuatu seperti ini:
$outerObject = array();
$result = $query->fetchAll(PDO::FETCH_ASSOC);
$numResult = count($result);
for($i = 0; $i < $numResult; $i++){
$indexDouble = result[$i];
$innerObject = array();
$innerObject['double'] = $indexDouble;
$outerObject[] = $innerObject;
}
$json = array();
$json['metoxes'] = $outerObject;
echo json_encode($json);
Saya akan mengujinya terlebih dahulu tetapi idenya adalah Anda perlu membuat apa yang akan menjadi JSONArray dan kemudian tambahkan ke dalamnya array dalam yang lebih kecil yang akan menjadi JSONObject . Ketika Anda json_encode bahwa Anda akan memiliki array [] dengan objek {double:some_number}. Untuk mengekstrak, yang harus Anda lakukan adalah mengulang JSONArray dan dapatkan setiap ganda yang terkait dengan nilai kunci ganda. Ini akan bekerja seperti ini:
JSONArray fullArray = JSONArray(stringInput);
int length = fullArray.length;
for(int i = 0; i < length; i++){
double target = fullArray.getJSONObject(i).getDouble("double");
//do something with the double
}