我有一个类似下面的JSON结构。
{
"email":"abc.def@gmail.com",
"mobile":9911776556,
"customerLanguage":"English",
"sms_flag":1,
"ivr_flag":0,
"dateOfBirth":"19-11-1981",
"dateOfJoining":"08-10-2001"
}
现在我只想自定义dateOfBirth字段,我在下面尝试了但它改变了dateOfBirth和dateOfJoining。
Gson jsonConvertor = new GsonBuilder().setDateFormat("dd/mm/yyyy").create();
TestJson userAuthenticationDTO = jsonConvertor.fromJson(request_body, TestJson.class);
我的TestJson类具有以下结构。
TestJson - >
class TestJson{
Date dateOfBirth;
Date dateOfJoining;
// other fields.....
}
TestJson对象包含两个修改日期字段,我只想修改一个?
答案 0 :(得分:3)
使用gson执行此操作的简洁方法是编写并注册您自己的TypeAdapter
,以适当的方式序列化您的TestJson
类型,即。一个Date
字段,另一个Date
字段。
这个
Gson jsonConvertor = new GsonBuilder().setDateFormat("dd/mm/yyyy").create();
设置任何和所有Date
值的格式。
答案 1 :(得分:1)
好像你需要使用keys
。
第一种方法可以是deserialize
到java.util.Map
,然后只需要修改Java Map。
或以下内容
JSONObject object=new JSONObject(myJsonString);
JSONObject childobject=object.getJSONObject("dateOfJoining");
JSONObject modifiedjson=new JSONObject();
modifiedjson.put("value", formatedValue());