2016-06-21 17 views
0

Ich versuche, diese json über eine API meines Klienten erfasst zu analysieren:Json Parsing mit Lib Gson in Java

[ 
    { 
    "pagination": { 
     "page": 7, 
     "total_pages": 11, 
     "entries": 100, 
     "total_entries": 1007 
    }, 
    "logical_numbers": [ 
     { 
     "logical_number": { 
      "id": 50095, 
      "number": "524103650", 
      "app_version_ids": [ 
      1427, 
      1230, 
      847 
      ], 
      "created_by": 1510, 
      "created_via": "interface", 
      "group_id": 526, 
      "created_at": "2016-03-21T15:54:30.670-03:00", 
      "updated_at": "2016-03-21T15:54:30.682-03:00" 
     } 
     }, 
     { 
     "logical_number": { 
      "id": 44593, 
      "number": "524103627", 
      "app_version_ids": [ 
      1427, 
      1230, 
      847 
      ], 
      "created_by": 1510, 
      "created_via": "interface", 
      "group_id": 526, 
      "created_at": "2016-02-26T10:02:20.561-03:00", 
      "updated_at": "2016-02-26T10:02:20.608-03:00" 
     } 
     } 
    ] 
    } 
] 

Hier sind die Klassen I für diese Arbeit geschaffen:

import java.io.FileReader; 
import java.util.ArrayList; 
import com.google.gson.Gson; 

public class Test { 
    public static void main(String[] args) { 
     Gson gson = new Gson(); 
     Pagination[] pagination = gson.fromJson(new FileReader("input1.json"), Pagination[].class); 
     System.out.println(gson.toJson(pagination)); 
    } 
} 

class Pagination { 
    Long page; 
    Long total_pages; 
    Long entries; 
    Long total_entries; 
    ArrayList<LogicalNumbers> logicals; 
} 

class LogicalNumbers { 
    int id; 
    String number; 
    ArrayList<String> app_version_ids = new ArrayList<>(); 
    String created_by; 
    String created_via; 
    String group_id; 
    String created_at; 
    String updated_at; 
} 

wenn ich diesen Code ausführen, erhalte ich das folgende Ergebnis:

[{}]

Ich bin nicht erfolgreich in den Parsings. Kann mir jemand helfen?

Danke.

Antwort

0

Nach der json Erkundung fand ich den Grund des leeren deseralization ... Sie haben zwei kleine Probleme ... 1. ein: Ihre Json mit einem Objekt tatsächlich ein Array ist, das eine Paginierung Objekt enthält und eine logische Zahlen Array

enter image description here

2. Platz: die POJO Beschreibung des json Schema ist nicht korrekt ..

Ich

nach einer gewissen Zeit eine Lösung gefunden:

Versuchen:

class Foo { 
private Pagination pagination; 
private List<LogicalNumbers> logical_numbers; 
} 

class Pagination { 
Long page; 
Long total_pages; 
Long entries; 
Long total_entries; 
} 

class LogicalNumbers { 
Ln logical_number; 

} 

class Ln { 
int id; 
String number; 
List<String> app_version_ids = new ArrayList<>(); 
String created_by; 
String created_via; 
String group_id; 
String created_at; 
String updated_at; 
} 

und dann

public static void main(String[] args) { 
    Gson gson = new Gson(); 
    Foo[] pagination = gson.fromJson(new FileReader("input1.json"), Foo[].class); 
// Pagination[] pagination = gson.fromJson(new FileReader("input1.json"), Pagination[].class); 
    System.out.println(gson.toJson(pagination)); 
} 
+0

Arbeitete! Vielen Dank! –

+0

Sie sind herzlich willkommen, bitte vergessen Sie nicht zu stimmen/akzeptieren Sie die Antwort, wenn der Beitrag Ihre Frage lösen –