首页 > 解决方案 > 如何更改json中的日期格式

问题描述

如何替换json中的数据格式?例如,我有这样的 json 对象

{
"dt1":"12-12-2020",
"street":"test",
"city":"test2",
"country":"test3",
"dt2":"12-11-2020"
}

结果我想得到

{
"dt1":"12/12/2020",
"street":"test",
"city":"test2",
"country":"test3",
"dt2":"12/11/2020"
}

我有不同的字段名称,所以我们不需要依赖字段名称只需要替换数据格式......我该怎么做???

标签: javajson

解决方案


我想到的一种方法是您可以使用Gson库将一种 json 格式转换为另一种格式。就像您使用 Gson.fromJson 将 Json 字符串转换为 Java 对象,然后使用Gson.toJsonJava 对象转换回所需的 Json 字符串格式。让我分享您尝试的示例代码:

Gson gsonFormat1 = new GsonBuilder().setDateFormat("mm-dd-yyyy").create();
String format1 = "{\n" +
            "\"dt1\":\"12-12-2020\",\n" +
            "\"street\":\"test\",\n" +
            "\"city\":\"test2\",\n" +
            "\"country\":\"test3\",\n" +
            "\"dt2\":\"12-11-2020\"\n" +
            "}";

//Assume Sample is POJO for above json
Sample sampleFormat1 = gsonFormat1.fromJson(format1, Sample.class);
Gson gsonFormat2 = new GsonBuilder().setDateFormat("mm/dd/yyyy").create();

//Your output String here
String s2 = gsonFormat2.toJson(sampleFormat1, Sample.class);
System.out.println("Format2 String => "+s2);

使用上述技术,您不需要知道任何日期字段名称。基本上所有的日期类型字段都可以转换为目标格式。希望这可以帮助。


推荐阅读