json和Map互换

扫码查看

demo类

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class DateInfo {


    private String mockDateTime;

    private String serverDateTime;

    private String currentDate;


}

 测试类

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.lang.reflect.Type;
import java.util.HashMap;
import java.util.Map;

public class Test {

public static void main(String[] args) {
Map<String, DateInfo> map = new HashMap<>();
map.put("Key1", DateInfo.builder().currentDate(System.currentTimeMillis() + "_1").build());
map.put("Key2", DateInfo.builder().currentDate(System.currentTimeMillis() + "_2").build());
map.put("Key3", DateInfo.builder().currentDate(System.currentTimeMillis() + "_3").build());

Type type = new TypeToken<HashMap<String, DateInfo>>() {
}.getType();

Gson gson = new Gson();
String json = gson.toJson(map, type);
System.out.println("gson.toJson(map) = " + json);

Map<String, DateInfo> fromJson = gson.fromJson(json, type);
System.out.println("fromJson = " + fromJson);

System.out.println("fromJson.equals(map) = " + fromJson.equals(map));
System.out.println("fromJson.get(\"Key1\").equals(map.get(\"Key1\")) = " + fromJson.get("Key1").equals(map.get("Key1")));

}

}

输出结果

gson.toJson(map) = {"Key2":{"currentDate":"1575363764140_2"},"Key1":{"currentDate":"1575363764140_1"},"Key3":{"currentDate":"1575363764140_3"}}
fromJson = {Key2=DateInfo(mockDateTime=null, serverDateTime=null, currentDate=1575363764140_2), Key1=DateInfo(mockDateTime=null, serverDateTime=null, currentDate=1575363764140_1), Key3=DateInfo(mockDateTime=null, serverDateTime=null, currentDate=1575363764140_3)}
fromJson.equals(map) = true
fromJson.get("Key1").equals(map.get("Key1")) = true

12-16 01:29
查看更多