首页 > 编程语言 > 详细

java对象和json字符串的相互转换

时间:2020-04-28 18:11:55      阅读:60      评论:0      收藏:0      [点我收藏+]

1.先导入该依赖,一般使用这一个就行了

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.10.0</version>
</dependency>

2.以下都是测试代码,注释都写在代码中了,自行理解,redis部分替换成对应的字符串即可。

@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class MyTest {

    @Autowired
    private StringRedisTemplate redisTemplate;

    //存入字符串
    @Test
    public void test01() {
        String name = "zhangmeili";
        redisTemplate.opsForValue().set("name", name);
    }

    //对象转成json字符串存入redis
    @Test
    public void test02() throws JsonProcessingException {
        User u = new User(1001, "张三丰", "男", 20);
        //{"id":"1001","name":"张三丰",,,,,}
        ObjectMapper obj = new ObjectMapper();
        String json = obj.writeValueAsString(u);
        redisTemplate.opsForValue().set("user", json);
    }

    //多个对象集合===>Json字符串
    @Test
    public void test03() throws JsonProcessingException {
        User u1 = new User(1001, "张三丰", "男", 21);
        User u2 = new User(1002, "张五丰", "男", 22);
        User u3 = new User(1003, "张六丰", "男", 23);
        User u4 = new User(1004, "张七丰", "男", 24);
        List<User> list = Arrays.asList(u1, u2, u3, u4);

        ObjectMapper obj = new ObjectMapper();
        String json = obj.writeValueAsString(list);
        //[{},{},{}]
        redisTemplate.opsForValue().set("users", json);
    }


    //获取字符串
    @Test
    public void test04() {
        String name = redisTemplate.opsForValue().get("name");
        System.out.println(name);
    }

    //redis中的json字符串====>一个对象
    @Test
    public void test05() throws IOException {
        String json = redisTemplate.opsForValue().get("user");
        ObjectMapper obj = new ObjectMapper();
        User user = obj.readValue(json, User.class);
        System.out.println(user);
    }

    //redis中的json字符串====>多个对象list集合
    @Test
    public void test06() throws IOException {
        String json = redisTemplate.opsForValue().get("users");
        ObjectMapper obj = new ObjectMapper();
        List<User> users = obj.readValue(json, 
                obj.getTypeFactory().constructCollectionType(List.class, User.class));
        System.out.println(users);;
    }

    //存入一个Map对象转成json字符串
    @Test
    public void test07() throws JsonProcessingException {
        Map<String,String> map = new HashMap<>();
        map.put("location", "上海");
        map.put("date", "2019-12-24");
        map.put("department","宣传部");

        ObjectMapper obj = new ObjectMapper();
        String json = obj.writeValueAsString(map);
        //{"location":"上海","name":"张三丰",,,,,}
        redisTemplate.opsForValue().set("map",json, 100, TimeUnit.MINUTES);

    }

    //获取一个json字符串=====>map集合
    @Test
    public void test08() throws IOException {
        ObjectMapper obj = new ObjectMapper();

        String json = redisTemplate.opsForValue().get("map");
        Map<String, String> map = obj.readValue(json, 
                obj.getTypeFactory().constructMapType(Map.class, String.class, String.class));
        System.out.println(map);
    }
}

 

java对象和json字符串的相互转换

原文:https://www.cnblogs.com/sun2020/p/12795696.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!