2014-02-10 125 views
0

我有一個JSON數組的JSONArray,我試圖用GSON解析。我正在使用FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES。它解析正確大多數字段(所以FieldNamingPolicy設置正確的),但我得到null返回爲什麼GSON不能正確解析這些字段? (FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)

{ 
     "image_sq_48x48_url": "url1", 
     "image_sq_64x64_url": "url2", 
     "image_sq_96x96_url": "url3" 
} 

字段名

imageSq48x48Url 
imageSq64x64Url 
imageSq96x96Url 

也許一個更好的問題是什麼是正確的駱駝香菸盒?我也曾嘗試

imageSq48X48Url 
imageSq48X48url 

如果我地圖@SerializedName("image_sq_96x96_url")它解析/正確填充。

回答

1

不幸的是,您的JSON中的這些字段名稱不符合Gson尋找使用該策略的內容。

如果創建一個POJO和序列化,你可以看到什麼的問題是:

class MyPojo 
{ 
    String imageSq48x48Url = "hi"; 
} 

從GSON使用該策略產生的JSON是:

{"image_sq48x48_url":"hi"} 

它不考慮/將數字數字看作領先指標/「單詞」的開始。

如果重命名字段設置爲:

String imageSq_48x48Url; 

它將與您的JSON例子和戰略合作。

基本上,您需要創建自己的類,該類實現FieldNamingStrategy,它可以按照您的方式處理這些JSON字段名,或者使用@SerializedName註釋執行您的操作。

相關問題