2016-04-07 14 views
0

@SerializedName注釈の目的を理解しています。これは、JavaオブジェクトをJsonに変換してメンバーのデフォルト名を上書きする際に使用されます。今、私は、入ってくるJsonにキー "318"を持つ要素があるシナリオを持っています。明らかに、数字で始まるJavaメンバー名を持つことはできません。このJson要素 "318"を "threeOneEight"のような名前のJavaメンバーにどのようにマッピングするのですか?何か案が?GSONでPOJOのメンバー名と異なる場合、JSON要素名を指定する方法は?

答えて

0

逆の方法で使用したのとまったく同じ方法を使用します(@SerializedName)。

package net.sargue.gson; 

import com.google.gson.Gson; 
import com.google.gson.GsonBuilder; 
import com.google.gson.annotations.SerializedName; 
import org.intellij.lang.annotations.Language; 

public class SO36488332 { 
    public static void main(String[] args) { 
    @Language("JSON") 
    String json = "{\n" + 
      " \"318\": \"I am a String.\"\n" + 
      "}"; 

    Gson gson = new GsonBuilder().create(); 
    MyPOJO myPOJO = gson.fromJson(json, MyPOJO.class); 
    System.out.println("myPOJO.threeOneEight = " + myPOJO.threeOneEight); 
    } 

    private static class MyPOJO { 
    @SerializedName("318") 
    private String threeOneEight; 
    } 
} 

実行結果は次のとおりです:

myPOJO.threeOneEight = I am a String. 
この

チェック

関連する問題