Zasadniczo chcemy reprezentować go jako Lista map:
public static void main(String[] args)
{
String json = "[{\"property\":\"surname\",\"direction\":\"ASC\"}]";
Type listType = new TypeToken<ArrayList<HashMap<String,String>>>(){}.getType();
Gson gson = new Gson();
ArrayList<Map<String,String>> myList = gson.fromJson(json, listType);
for (Map<String,String> m : myList)
{
System.out.println(m.get("property"));
}
}
wyjściowa:
nazwisko
Jeżeli przedmioty w macierzy zawierają znany zestaw klucz/pary wartości, można utworzyć POJO i odwzorować na to:
public class App
{
public static void main(String[] args)
{
String json = "[{\"property\":\"surname\",\"direction\":\"ASC\"}]";
Type listType = new TypeToken<ArrayList<Pair>>(){}.getType();
Gson gson = new Gson();
ArrayList<Pair> myList = gson.fromJson(json, listType);
for (Pair p : myList)
{
System.out.println(p.getProperty());
}
}
}
class Pair
{
private String property;
private String direction;
public String getProperty()
{
return property;
}
}
[Co * dokładnie * wypróbowałeś?] (Http://mattgemmell.com/2008/12/08/what-have-you-tried/) –
Próbowałem zdefiniować typ kolekcji, np. Type collectionType = new TypeToken>() {}. GetType(); a także to podejście http://stackoverflow.com/questions/9853017/parsing-json-array-with-gson –
Black
Rozwiązaniem jest deserialise jako tablica niestandardowego typu "Sort", np .: public class Sortuj { prywatna własność String; prywatny kierunek ciągu; } Sortuj [] sorts = gson.fromJson (sortJson, Sort []. Class); – Black