后端向前端传值时, 需要将对象转换为JSON串进行传递, 以下介绍三种数据转换方式
- jackson
- gson
- fastjson
方式一: 利用 spring-boot-starter-web 依赖下的 spring-boot-starter-json 依赖, 实现 JSON串 与 对象之间的转换
工程依赖介绍:
案例: 以JSON格式存储一个对象到redis数据库
@SpringBootTest
public class StringRedisTemplateTests {
@Autowired
private StringRedisTemplate stringRedisTemplate;
// 使用Spring-web依赖中的jackson
@Test
public void testRedisStringOperations2() throws JsonProcessingException {
Map<String, Object> map = new HashMap<>();
map.put("username", "ls");
map.put("password", 123456);
// Map -> JSON
String JSON = new ObjectMapper().writeValueAsString(map);
ValueOperations<String, String> operations =
stringRedisTemplate.opsForValue();
operations.set("user", JSON);
String user = operations.get("user");
System.out.println(user); // String
// String -> Map
map = new ObjectMapper().readValue(user, map.getClass());
System.out.println(map); // Map
}
}
**方式二: ** 使用第三方依赖 GSON
工程依赖介绍:
案例: 以JSON格式存储一个对象到redis数据库
public class JedisTests {
@Test
public void testStringOperation2(){
Jedis jedis = new Jedis("192.168.126.128", 6379);
Map<String, Object> map = new HashMap<>();
map.put("id", 1);
map.put("name", "jack");
map.put("password", "123456");
Gson gson = new Gson();
// Map -> JSON
String json = gson.toJson(map);
System.out.println(json); // String
jedis.set("user", json);
String user = jedis.get("user");
System.out.println(user);
// JSON -> Map
Map<String, Object> obj = gson.fromJson(user, Map.class);
System.out.println(obj); // Map
jedis.close();
}
}