2011-08-05 8 views
7

Jak analizować z GSON gdy plik wygląda takJak analizować z GSON gdy identyfikator ma miejsca w nazwie

{ 
    "Person Id":"test", 
    "Last Name": "test", 
    "First Name":"test" 
} 

wiem do analizowania gdy nazwy nie posiada przestrzeń pomiędzy, tworzę klasę jak

class Person{ 
public String PersonId; 
public String LastName; 
public String FirstName; 
} 

ale jak przeanalizować, gdy identyfikator ma wolne miejsce w środku? Co zmienić w klasie Person? (Nie mogę zmienić formatu pliku).

+0

spojrzenie na koniec tego wątku: http://groups.google.com/group/google-gson/tree/browse_frm/month/2010-05/e575bb65cdd30410? rnum = 31 & _done =/group/google-gson/browse_frm/month/2010-05? & pli = 1 – MByD

+0

Użyj podkreślnika, aby zastąpić przestrzeń? – rossum

+0

Identyfikatory pól używają nazw, które są sprzeczne z konwencjami kodowania Java. Uruchom identyfikatory małymi literami. –

Odpowiedz

0

Próbowałem parsować ten JSON, ale nie użyłem GSON do przeanalizowania tego. będę dzielić mój kod z tobą łaskawie pod uwagę jedynie jako rozwiązanie uzupełniające, aby rozwiązać ten problem:

String parse = "{\"Person Id\":\"test\",\"Last Name\": \"lname\",\"First Name\":\"fname\"}"; 
try { 
    JSONObject jsonObject = new JSONObject(parse); 
    String id = jsonObject.getString("Person Id"); 
    System.out.println("id="+id); 
    System.out.println("lname="+jsonObject.getString("Last Name")); 
    System.out.println("fname="+jsonObject.getString("First Name")); 
} catch (JSONException e) { 
    e.printStackTrace(); 
} 
32

Chociaż nadal używa GSON można to zrobić poprzez dodanie adnotacji. Na przykład:

class Person{ 
    @SerializedName("Person Id") public String PersonId; 
    @SerializedName("Last Name") public String LastName; 
    @SerializedName("First Name") public String FirstName; 
} 

można znaleźć więcej szczegółów w dokumentacji GSON: https://sites.google.com/site/gson/gson-user-guide#TOC-JSON-Field-Naming-Support

+0

Dzięki @Eric, rozwiązany dla mnie. –

Powiązane problemy