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
}