2016-12-28 5 views
1

値:gson - 配列の長い値は、フロートになる私は、この形式のJSONを作成する必要が

{ 
    "array": [ 
    1482922777223, 
    0.014221191, 
    0.014221191, 
    0.014221191 
    ] 
} 

Data.class

public class Data { 

    @SerializedName("array") 
    @Expose 
    private List<Float> array = null; 
} 

私はgsonライブラリを使用したJSONオブジェクトを文字列に変換します。

List<Float> list = new ArrayList<>(); 
list.add((float)1482922777223); 
list.add(0.014221191); 
list.add(0.014221191); 
list.add(0.014221191); 
Data data = new Data(list); 
Gson gson = new Gson(); 
String json = gson.toJson(data); 

結果文字列:

{ 
    "array": [ 
    1.4829219E12, <--- HOW TO GET HERE 1482922777223? 
    0.014221191, 
    0.014221191, 
    0.014221191 
    ] 
} 

助けてください!

答えて

0

Floatの値をTypeAdapterに登録する必要があります。

例えば:

GsonBuilder gsonBuilder = new GsonBuilder();   
gsonBuilder.registerTypeAdapter(Float.class, new JsonSerializer<Float>() { 
    @Override 
    public JsonElement serialize(final Float src, final Type typeOfSrc, final JsonSerializationContext context) { 
     BigDecimal value = BigDecimal.valueOf(src);  
     return new JsonPrimitive(value); 
    } 
}); 

Gson gson = gsonBuilder.create(); 
String json = gson.toJson(data); 

出力:

{ 
    "array": [ 
    1482922777223, 
    0.014221191, 
    0.014221191, 
    0.014221191 
    ] 
} 
+0

おかげでたくさん! – phnmnn

関連する問題