MySQLから取得するデータ 適切なJSONにありません 形式であり、doubleの配列に変換することはできません。 JSONArray JSONObjectのコレクションです s。現在、単一のArrayのように見えるものを取得しています [9.32、5.22、10.201 ...]
必要なのはJSONArrayです JSONObjectsを含む
points:[{1:9.32},{2:5.22}]
次に、JSONObjectsを抽出できます。 JSONArrayから 数値に直接アクセスするだけです
JSONArray points = new JSONArray(pointsString);
JSONObject firstPoint = points.getJSONObject(1);
double value = firstPoint.getDouble("1");
これをループに簡単に変換して、JSONArray全体を実行できます。 値の
更新-PHPの問題
文字列が適切なJSONに戻ってこない クエリを単一の配列にすると、結果全体がダンプされるため、フォーマットします。次のようなものを試してください:
$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);
最初にテストしますが、JSONArrayとなるものを作成する必要があるという考えです。 次に、JSONObjectになる小さな内部配列を追加します。 。 json_encodeを実行すると、オブジェクト{double:some_number}を含む配列[]が作成されます。抽出するには、JSONArrayをループするだけです。 キー値doubleに関連付けられているすべてのdoubleを取得します。次のように機能します:
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
}