/ / Php list object para java arraylist objeto - java, php, json

Php list object para java arraylist object - java, php, json

Estou tentando buscar dados do banco de dados usando phpe envie para java usando json. Usando java, eu queria recuperar valores json de um arraylist. Esse arrayList conterá Fruit Object. Mas no meu código, obtenho valores dentro do arraylist e esse arraylist contém o LinkedHashMap e não o objeto fruit. Como altero o código php para que no lado java eu ​​possa obter 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());
}
}

Respostas:

0 para resposta № 1

Você deve ler no Documentação Gson. Descreve como manipular tipos de dados genéricos e coleções. O seguinte deve funcionar para você, assumindo o JSON formado corretamente:

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());
}