Los datos que extrae de MySQL
no está en el JSON
correcto formato y no se puede convertir a una matriz de dobles. Un JSONArray
es una colección de JSONObject
s. En este momento, obtiene lo que parece ser un solo Array
formateado como [9.32, 5.22, 10.201 ... ]
Lo que deberías tener es un JSONArray
que contiene JSONObjects
points:[{1:9.32},{2:5.22}]
Luego podría extraer los JSONObjects
desde el JSONArray
y simplemente acceda a los valores numéricos directamente
JSONArray points = new JSONArray(pointsString);
JSONObject firstPoint = points.getJSONObject(1);
double value = firstPoint.getDouble("1");
puede convertir fácilmente esto en un bucle para ejecutar todo un JSONArray
de valores
Actualización:problemas de PHP
Su cadena no regresa en el JSON
correcto formato porque está volcando el resultado completo si su consulta en una sola matriz. Prueba algo como esto:
$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);
Lo probaría primero, pero la idea es que necesitas crear lo que será el JSONArray
y luego agregue matrices internas más pequeñas que se convertirán en JSONObject
. Cuando json_encode, tendrá una matriz [] con objetos {doble:algún_número}. Para extraer, todo lo que tiene que hacer es recorrer el JSONArray
y obtenga cada doble asociado con el valor clave doble. Funcionaría algo como esto:
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
}