我有這個項目,我正在努力,我似乎無法讓Gson正常行爲。 下面是截圖/文件,我將提及: https://www.dropbox.com/sh/4qi2skij9knea7n/AACwkRV9x43lZeOoTZeCS3NPa?dl=0Gson toJson沒有序列化具體值
我有我的模型,旅行:
public class Trip {
@Expose
@SerializedName("Id")
private String mId;
@Expose
@SerializedName("Name")
private String mName;
@Expose
@SerializedName("Date")
private String mShipmentDateString;
@Expose
@SerializedName("State")
private int mState;
@Expose
@SerializedName("Orders")
private List<Order> mOrders;
//Getters and setters
}
就是這樣,僅此而已。 我創建了一個單獨的項目,試圖更好地理解這個問題,我在主要活動做的是:
String jsonElement = JsonHelper.getString();
final TripResponse trips = new Gson().fromJson(jsonElement,
TripResponse.class);
TripRequest tripRequest = new TripRequest();
tripRequest.setTrips(trips.getTripList());
Gson gson = new GsonBuilder().serializeNulls().create();
String jsonWithBuilder = gson.toJson(tripRequest);
Gson gsonB2 = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().serializeNulls().create();
String object = gsonB2.toJson(tripRequest);
這是我得到的,因爲你可以看到,即使dateString存在,並且有一個值它沒有被序列化: (查看文件夾中的image1)。
有趣的是:如果我在日期字符串和名稱之間交換了SerializedName,它會突然序列化日期而不是名稱(如您在dropbox上的image2中看到的那樣)。
輸入和輸出(輸出從第118行開始)位於收存箱文件夾中的文件「INPUTANDOUTPUT」中。
我錯過了什麼?
您的分享圖像沒有加載到我的身邊 – Piyush
我不知道爲什麼,他們在我已經鏈接的保管箱文件夾中共享和公開.. –
檢查[this](https://stackoverflow.com/questions/ 4802887/gson-how-to-exclude-specific-fields-from-serialization-without-annotations)@Sara Seward – Piyush