关于java:JSON与对象间的转换-API设计学习笔记1

8次阅读

共计 1034 个字符,预计需要花费 3 分钟才能阅读完成。

  • 对于缓存实现业务阐明:
  • 1. 应该查问缓存
  • 2. 判断缓存中是否有数据 *
  • 3. 如果没有数据, 则查询数据库
  • 4. 如果有数据, 则间接返回数据.
  • 思考: redis 中次要操作的类型是 String 类型, 业务数据如何于 String 进行交互!!!!! * 实现思路: 业务数据 ~ JSON ~ String

设计 API:
办法 1: 将任意的对象转化为 JSON.
办法 2: 将任意的 JSON 串转化为对象.
要求实现异样的解决

public class ObjectMapperUtil{
    //1. 定义常量对象:劣势 1:对象独一份,节俭空间 
        劣势 2:对象不容许他人随便篡改
        private static final ObjectMapper Mapper = new ObjectMapper();
        
        //1. 任意对象转换为 Json
 public static String toJson(Object object){
        try {if(object==null){throw new RuntimeException("传递的参数 object 为 null,请认真查看");
 }
            return Mapper.writeValueAsString(object);
 } catch (JsonProcessingException e) {e.printStackTrace();
 // 应该将查看异样,转化为运行时异样
 throw new RuntimeException("传递的对象不反对 json 转化 / 查看是否有 get/set 办法");
 }
    }
//2. 将任意 Json 转换为对象,传递什么类型转化什么对象
 public static <T> T toObject(String json,Class<T> target) {
        // 判断字符串的 API
 if (StringUtils.isEmpty(json) || target == null) {throw new RuntimeException("传递的参数不能为 null");
 }
        try {return Mapper.readValue(json, target);
 } catch (JsonProcessingException e) {e.printStackTrace();
 throw new RuntimeException("json 转换异样");
 }
    }
        
        
}

service 中的实现步骤:

  • 步骤: * 先查问 Redis 缓存 K:V
    • true 间接返回数据
    • false 查询数据库 *
    • KEY 有什么特点: 1.key 应该动态变化 2.key 应该标识业务属性 * key=ITEM_CAT_PARENTID::parentId
正文完
 0