JsonUtils.java 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.izouma.nineth.utils;
  2. import com.alibaba.fastjson.JSON;
  3. import com.alibaba.fastjson.JSONArray;
  4. import com.alibaba.fastjson.JSONObject;
  5. import com.alibaba.fastjson.TypeReference;
  6. import com.alibaba.fastjson.serializer.SerializerFeature;
  7. import java.util.ArrayList;
  8. import java.util.HashMap;
  9. import java.util.List;
  10. import java.util.Map;
  11. public class JsonUtils {
  12. final static String defaultDateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXX";
  13. public static class Builder {
  14. private Map<String, Object> map = new HashMap<>();
  15. public String build() {
  16. return new JSONObject(map).toJSONString();
  17. }
  18. public Builder add(String key, Object value) {
  19. map.put(key, value);
  20. return this;
  21. }
  22. }
  23. public static class ArrayBuilder {
  24. private List<Object> list = new ArrayList<>();
  25. public String build() {
  26. return new JSONArray(list).toString();
  27. }
  28. public ArrayBuilder add(Object object) {
  29. list.add(object);
  30. return this;
  31. }
  32. }
  33. public static <T> String serialize(T t) {
  34. JSON.DEFFAULT_DATE_FORMAT = defaultDateFormat;
  35. return serialize(t, SerializerFeature.WriteMapNullValue, SerializerFeature.WriteDateUseDateFormat);
  36. }
  37. public static <T> String serialize(T t, SerializerFeature... features) {
  38. return JSON.toJSONString(t, features);
  39. }
  40. public static <T> T deSerialize(String string, Class<T> tClass) {
  41. return JSON.parseObject(string, tClass);
  42. }
  43. public static <T> List<T> deSerializeList(String string, Class<T> tClass) {
  44. return JSON.parseArray(string, tClass);
  45. }
  46. public static <T> T complexJsonToObject(String jsonString) {
  47. return JSON.parseObject(jsonString, new TypeReference<T>() {
  48. }.getType());
  49. }
  50. }