2016-04-04 21 views
0

Kann das GSON-Parsing für nur einen Schlüssel überschrieben werden?GSON-Parsing für einen Schlüssel überschreiben

z.B.

Parse the following JSON: 

{ 
    "a" : "data", 
    "b" : "more data", 
} 

In dieser Klasse:

class Foo { 

    String a; 
    String b; 

} 

Aber verwandeln "b" während der Deserialisierung in Großbuchstaben?

Ich möchte vermeiden, einen benutzerdefinierten Deserializer zu schreiben und alle Werte manuell zu analysieren, da dies eine große Klasse ist.

Dank

+0

Sie können die Annotation '@ JsonAdapter' in einem Feld verwenden, um einen bestimmten Typadapter für dieses Feld anzugeben. Dann müssen Sie nur benutzerdefinierte Deserialisierung für dieses Feld implementieren – Remco

+0

können Sie klarer sein .. welche 'b' Sie sprechen über Java-Objekt' b' oder Json-Daten 'b' – Bharatesh

+0

Java-Objekt B. Ich würde gerne die nehmen Daten aus der JSON-Datei und transformieren sie in Großbuchstaben im Java-Objekt B. – Ljdawson

Antwort

0

In Gson können Sie mehrere Namen für einen Schlüssel mit @SerializedName Attribut

public static void main(String[] args) { 

    String str1="{" +" \"a\" : \"data\"," +" \"B\" : \"more data\"}"; 
    String str2="{" +" \"a\" : \"data\"," +" \"b\" : \"more data\"}"; 

    Gson gson=new Gson(); 
    //result will be same for both str1 and str2 
    Foo obj=gson.fromJson(str1, Foo.class); 
    System.out.println(obj.getB()); 

} 

class Foo { 
    String a; 
    @SerializedName(value="b", alternate={"B"}) 
    String b; 

    //setter and getters 
} 

Happy_Coding geben;

Verwandte Themen