sql >> Database >  >> RDS >> Mysql

Hoe een ArrayList door te geven aan een andere activiteit en deze om te zetten in double

De gegevens die u ophaalt uit MySQL bevindt zich niet in de juiste JSON formaat en kan niet worden geconverteerd naar een array van doubles. Een JSONArray is een verzameling van JSONObject s. Op dit moment krijg je wat lijkt op een enkele Array geformatteerd als [9.32, 5.22, 10.201 ... ]

Wat je zou moeten hebben is een JSONArray die JSONObjects . bevat

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

Je zou dan de JSONObjects . kunnen extraheren van de JSONArray en krijg eenvoudig rechtstreeks toegang tot de getalwaarden

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

je kunt dit eenvoudig converteren naar een lus om over een hele JSONArray te lopen van waarden

Update - PHP-problemen

Je string komt niet terug in de juiste JSON formaat omdat u het volledige resultaat dumpt als uw query in een enkele array wordt opgeslagen. Probeer zoiets als dit:

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

Ik zou dat eerst testen, maar het idee is dat je moet maken wat de JSONArray zal zijn en voeg er dan kleinere binnenarrays aan toe die het JSONObject worden . Wanneer u dat json_encodeert, heeft u een array [] met objecten {double:some_number}. Om uit te pakken, hoef je alleen maar door de JSONArray te gaan en krijg elk dubbel geassocieerd met sleutelwaarde dubbel. Het zou ongeveer als volgt werken:

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. PHP - Enkele aanhalingstekens of dubbele aanhalingstekens rond SQL-query?

  2. SELECTEREN met meerdere WHERE-voorwaarden in dezelfde kolom

  3. Hoe een array te maken in PostgreSQL

  4. jetty-env.xml met DataSource leidt tot falende WebAppContext op mvn jetty:run