2017-12-13 9 views
0

これは私のJavaオブジェクトで作成します。Javaのandorid JSON JSON

public class Photo { 
    private String date; 
    private GPS gps; 
    private long task_id; 
    private long pgo_id; 
    private long load_id; 
    private long com_id; 
    private long note_id; 
    private String note; 
    private String path; 
} 

public class GPS { 
    private double lon; 
    private double lat; 
} 

をそして私は、オブジェクトの写真からJSONを作成したいです。私はこれを行いました:

GsonBuilder builder = new GsonBuilder(); 
Gson gson = builder.create(); 
String jsonObject = gson.toJson(photos); 

しかし、それはすべてのパラメータでjsonを作成します。場合によっては、GPS gpscom_idを送信する必要はありません。この方法は0です。私はこのパラメータをjsonに送信したくありません。

答えて

0

デフォルトでは、Gsonはシリアル化中にnullのすべてのフィールドを省略します。

ただし、プリミティブはnullにできないため、デフォルト値は0(int)、0L(long)、0.0d(double)、0.0f(float)となります。プリミティブのフィールドタイプをボックス化された等価物に変更してみてくださいIntegerDoubleLong

値が0がシリアル化されている間、null値は除外されます。あなたは場合

はGsonは、null値をシリアライズ使用したいnew GsonBuilder().serializeNulls().create();