Os dados que você está extraindo do
MySQL
não está no JSON
adequado formato e não pode ser convertido em um array de doubles. Um JSONArray
é uma coleção de JSONObject
s. Agora você está recebendo o que parece ser um único Array
formatado como [9.32, 5.22, 10.201 ... ] O que você deve ter é um
JSONArray
que contém JSONObjects
points:[{1:9.32},{2:5.22}]
Você pode então extrair os
JSONObjects
do JSONArray
e basta acessar os valores numéricos diretamente JSONArray points = new JSONArray(pointsString);
JSONObject firstPoint = points.getJSONObject(1);
double value = firstPoint.getDouble("1");
você pode facilmente converter isso em um loop para executar um
JSONArray
inteiro de valores Atualização - problemas de PHP
Sua string não está voltando no
JSON
adequado format porque você está despejando todo o resultado se sua consulta em uma única matriz. Tente algo assim:$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);
Eu testaria isso primeiro, mas a ideia é que você precise criar o que será o
JSONArray
e, em seguida, adicione a ele matrizes internas menores que se tornarão o JSONObject
. Quando você json_encode que você terá um array [] com objetos {double:some_number}. Para extrair, tudo o que você precisa fazer é percorrer o JSONArray
e obtenha cada double associado ao valor da chave double. Funcionaria mais ou menos assim: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
}