sql >> Databasteknik >  >> RDS >> Mysql

Hur man skickar en ArrayList till en annan aktivitet och omvandlar den till dubbel

Datan du hämtar från MySQL är inte i korrekt JSON format och kan inte konverteras till en array av dubblar. En JSONArray är en samling av JSONObject s. Just nu får du vad som verkar vara en enda Array formaterad som [9.32, 5.22, 10.201 ... ]

Det du borde ha är en JSONArray som innehåller JSONObjects

points:[{1:9.32},{2:5.22}]

Du kan sedan extrahera JSONObjects från JSONArray och få helt enkelt tillgång till siffervärdena direkt

JSONArray points = new JSONArray(pointsString);
JSONObject firstPoint = points.getJSONObject(1);
double value = firstPoint.getDouble("1");

du kan enkelt konvertera detta till en loop för att köra över en hel JSONArray av värden

Uppdatering – PHP-problem

Din sträng kommer inte tillbaka i korrekt JSON format eftersom du dumpar hela resultatet om din fråga i en enda array. Prova något sånt här:

$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);

Jag skulle testa det först men tanken är att du måste skapa vad som kommer att bli JSONArray och lägg sedan till mindre inre arrayer som kommer att bli JSONObject . När du json_kodar det kommer du att ha en array [] med objekt {double:some_number}. För att extrahera, allt du behöver göra är att gå igenom JSONArray och få varje dubbel associerad med nyckelvärde dubbel. Det skulle fungera ungefär så här:

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
}



  1. Prestandajämförelse mellan sql SELECT NULL och SELECT 1

  2. mysql REPLACE-fråga med flera primärnycklar

  3. Hur använder jag uttrycksbyggaren i Access 2016?

  4. Kan jag få WHERE col LIKE '%' att välja NULL-värden också?