我有这个项目,我正在努力,我似乎无法让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