/ / Php listar objeto a java arraylist object - java, php, json

Php listar objeto a java arraylist: java, php, json

Estoy tratando de obtener datos de la base de datos usando phpy enviarlo a java usando json. Usando java, quería recuperar los valores json de un arraylist. Ese arrayList contendrá Fruit Object. Pero en mi código, obtengo valores dentro de arraylist y ese arraylist contiene LinkedHashMap y no el objeto fruit. ¿Cómo cambio el código php para que en el lado de Java pueda obtener valores como ArrayList fruitList = new ArrayList ();

<?php
require("phpfunc.fns");
include("Fruit.php");
sqlconnect();

$data = array();
$fruit = new Fruit();
$sql="select * from fruit";
$result=mysql_query( $sql);
$count = 0;

while( $r=mysql_fetch_array($result) ){
//echo $r["lati"].",". $r["longi"] ;
$fruit->setFruitId($r["fruitId"]);
$fruit->setAvailable($r["available"]);

$data[$count] = $fruit;
$count++;
}
echo json_encode($data);

?>

//java code
public void decodeUsingGSON(String json){
Gson gson = new Gson();
ArrayList fruitList = gson.fromJson(json, ArrayList.class);

for(int i=0; i<fruitList.size(); i++){
Fruit fruit = (Fruit) fruitList.get(i);
System.out.println(fruit.getAvailable());
}
}

Respuestas

0 para la respuesta № 1

Deberías leer sobre el Documentación de gson. Describe cómo manejar tipos de datos genéricos y colecciones. Lo siguiente debería funcionar para usted, suponiendo que JSON esté formado correctamente:

final Type collectionType = new TypeToken<Collection<Fruit>>(){}.getType();
final Collection<Fruit> fruits = gson.fromJson(json, collectionType);

for(final Fruit fruit; fruits) {
System.out.println(fruit.getAvailable());
}