SpringMVC中JSON处理

JSON是做为前后端分离的中间人,他用来前后端传输数据,这里有详细讲解前端解析JSON,我简单的介绍一下

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>

    <script>
        // 定义一个js对象
        var user = {
            name:"uphe",
            age:20,
            sex:"man"
        };

        // 将js对象转化为JSON对象
        var json = JSON.stringify(user);

        console.log(json);

        // 将JSON对象解析为js对象
        var obj = JSON.parse(json);
        console.log(obj);
    </script>
</head>
<body>

</body>
</html>

下面主要讲解在java中如何处理JSON,这里讲解两个工具,分别是jackson和fastjson

Jackson的使用,首先我们需要先导入包,也就是在maven中导入依赖

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

这里我只给出核心代码,也就是我们的Controller类

package com.zhiying.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zhiying.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController //加上这个注解,这个类就不会走视图解析器了
//@Controller
public class UserController {

    @RequestMapping("/t1")
    //@ResponseBody //加上这个注解,这个方法就不会走视图解析器了
    public String test1() throws JsonProcessingException {
        User user = new User("uphe",20,"man");
        ObjectMapper mapper = new ObjectMapper();
        //将一个对象转化为JSON串
        String s = mapper.writeValueAsString(user);
        return s;
    }

    @RequestMapping("/t2")
    //@ResponseBody //加上这个注解,这个方法就不会走视图解析器了
    public String test2() throws JsonProcessingException {
        User user1 = new User("uphe",20,"man");
        User user2 = new User("uphe",20,"man");
        User user3 = new User("uphe",20,"man");
        List<User> list = new ArrayList<User>();
        list.add(user1);
        list.add(user2);
        list.add(user3);
        ObjectMapper mapper = new ObjectMapper();
        //将一个集合转化为JSON串
        String s = mapper.writeValueAsString(list);
        return s;
    }
}

fastjson同样的,先导入jar包,这个是阿里的

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.60</version>
        </dependency>

然后是Controller类

package com.zhiying.controller;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JavaType;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.zhiying.pojo.User;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

@RestController //加上这个注解,这个类就不会走视图解析器了
//@Controller
public class UserController {


    @RequestMapping("/t3")
    //@ResponseBody //加上这个注解,这个方法就不会走视图解析器了
    public String test3() throws JsonProcessingException {
        User user1 = new User("uphe",20,"man");
        User user2 = new User("uphe",20,"man");
        List<User> list = new ArrayList<User>();
        list.add(user1);
        list.add(user2);
        //java对象转化为json串
        String s1 = JSON.toJSONString(user1);
        System.out.println(s1);
        String s2 = JSON.toJSONString(list);
        System.out.println(s2);

        //json串转化为java对象
        User user = JSON.parseObject(s1,User.class);
        System.out.println(user);

        return "hello";
    }
}

发布了376 篇原创文章 · 获赞 242 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/HeZhiYing_/article/details/104000142