BLE_WIFI_Scale_Server_Api 服务器与wifi秤交互只需要实现3个接口:设备注册、获取用户、上传记录
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

JsonMapper.java 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. package com.inet.ailink.receiver.common.utils;
  2. import com.fasterxml.jackson.annotation.JsonInclude.Include;
  3. import com.fasterxml.jackson.core.JsonProcessingException;
  4. import com.fasterxml.jackson.databind.DeserializationFeature;
  5. import com.fasterxml.jackson.databind.JavaType;
  6. import com.fasterxml.jackson.databind.ObjectMapper;
  7. import com.fasterxml.jackson.databind.SerializationFeature;
  8. import com.fasterxml.jackson.databind.util.JSONPObject;
  9. import java.io.IOException;
  10. public class JsonMapper {
  11. private ObjectMapper mapper;
  12. public JsonMapper() {
  13. this(null);
  14. }
  15. public JsonMapper(Include include) {
  16. mapper = new ObjectMapper();
  17. if (include != null) {
  18. mapper.setSerializationInclusion(include);
  19. }
  20. mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
  21. mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
  22. }
  23. public static JsonMapper nonEmptyMapper() {
  24. return new JsonMapper(Include.NON_EMPTY);
  25. }
  26. public static JsonMapper nonDefaultMapper() {
  27. return new JsonMapper(Include.NON_DEFAULT);
  28. }
  29. public static JsonMapper nonAlwaysMapper() {
  30. return new JsonMapper(Include.ALWAYS);
  31. }
  32. public String toJson(Object object) {
  33. try {
  34. return mapper.writeValueAsString(object);
  35. } catch (IOException e) {
  36. return null;
  37. }
  38. }
  39. public <T> T fromMapToObject(Object map, Class<T> cls) {
  40. return this.fromJson(this.toJson(map), cls);
  41. }
  42. public <T> T fromMapToObject(Object map, JavaType cls) {
  43. return this.fromJson(this.toJson(map), cls);
  44. }
  45. public <T> T fromJson(String jsonString, Class<T> clazz) {
  46. if (isEmpty(jsonString)) {
  47. return null;
  48. }
  49. try {
  50. return mapper.readValue(jsonString, clazz);
  51. } catch (IOException e) {
  52. e.printStackTrace();
  53. return null;
  54. }
  55. }
  56. public <T> T fromJson(String jsonString, JavaType javaType) {
  57. if (isEmpty(jsonString)) {
  58. return null;
  59. }
  60. try {
  61. return (T) mapper.readValue(jsonString, javaType);
  62. } catch (IOException e) {
  63. e.printStackTrace();
  64. return null;
  65. }
  66. }
  67. public JavaType createCollectionType(Class<?> collectionClass, Class<?>... elementClasses) {
  68. return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses);
  69. }
  70. public <T> T update(String jsonString, T object) {
  71. try {
  72. return (T) mapper.readerForUpdating(object).readValue(jsonString);
  73. } catch (JsonProcessingException e) {
  74. e.printStackTrace();
  75. } catch (IOException e) {
  76. e.printStackTrace();
  77. }
  78. return null;
  79. }
  80. public String toJsonP(String functionName, Object object) {
  81. return toJson(new JSONPObject(functionName, object));
  82. }
  83. public void enableEnumUseToString() {
  84. mapper.enable(SerializationFeature.WRITE_ENUMS_USING_TO_STRING);
  85. mapper.enable(DeserializationFeature.READ_ENUMS_USING_TO_STRING);
  86. }
  87. public ObjectMapper getMapper() {
  88. return mapper;
  89. }
  90. public static boolean isEmpty(String str) {
  91. return str == null || str.length() == 0;
  92. }
  93. }