SpringMVC-相关知识:JSON

Posted jiaxing-java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringMVC-相关知识:JSON相关的知识,希望对你有一定的参考价值。

JSON

前后端分离时代:

后端部署后端,提供接口

建立连接(json)

前端独立部署,负责渲染后端的数据

<script type="text/javascript">
  // 编写一个JavaScript对象
  var user = 
    name:"秦疆",
    age : 3,
    sex:"男"
  

  // 将js对象转化为JSON对象(字符串)
  var json  = JSON.stringify(name:\'秦疆\',age:3,sex:\'男\')
  // // 将JSON对象(字符串)转化为js对象
  var obj = JSON.parse(\'"name":"秦疆","age":3,"sex":"男"\')

  console.log(user)
  console.log(json) // "name":"秦疆","age":3,"sex":"男"
  console.log(obj) // age: 3 \\n name: "秦疆" \\n sex: "男"

</script>

1、Jackson的使用

  1. 导入依赖

    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.12.7.1</version>
    </dependency>
    
  2. 配置解决乱码问题

    <!--配置注解驱动-->
    <mvc:annotation-driven>
        <mvc:message-converters register-defaults="true">
            <bean class="org.springframework.http.converter.StringHttpMessageConverter">
                <constructor-arg value="UTF-8"/>
            </bean>
            <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
                <property name="objectMapper">
                    <bean class="org.springframework.http.converter.json.Jackson2ObjectMapperFactoryBean">
                        <property name="failOnEmptyBeans" value="false"/>
                    </bean>
                </property>
            </bean>
        </mvc:message-converters>
    </mvc:annotation-driven>
    
  3. 在Controller类中创建一个ObjectMapper对象,把实体类的对象转换成String

    @Controller
    public class UserController 
    
        @RequestMapping("j1")
        @ResponseBody  // 增加了这个注解,就不会走视图解析器,会直接返回一个字符串
        public String json1() throws JsonProcessingException 
    
            // jackson ObjectMapper
            ObjectMapper mapper = new ObjectMapper();
    
            // 创建一个对象
            User user = new User("长江七号",3,"男");
    
            String s = mapper.writeValueAsString(user);
    
            return s;
        
    
    
    
    • 或者把类上的注解改成@RestController,使它其中的所有方法都会返回JSON字符串
    @RestController
    public class UserController 
    
        @RequestMapping("j1")
        public String json1() throws JsonProcessingException 
    
            // jackson ObjectMapper
            ObjectMapper mapper = new ObjectMapper();
    
            // 创建一个对象
            User user = new User("长江七号",3,"男");
    
            String s = mapper.writeValueAsString(user);
    
            return s;
        
    
    
    

2、fastjson的使用

  1. 导入依赖

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>2.0.25</version>
    </dependency>
    
  2. 新建类并在其中测试

    @RequestMapping("j4")
    public String json4() 
        List<User> userList = new ArrayList<>();
    
        // 创建一个对象
        User user1 = new User("长江1七号",3,"男");
        User user2 = new User("长江2七号",3,"男");
        User user3 = new User("长江3七号",3,"男");
        User user4 = new User("长江4七号",3,"男");
    
        userList.add(user1);
        userList.add(user2);
        userList.add(user3);
        userList.add(user4);
    
        System.out.println("*********Java对象转JSON字符串*********");
        String str1 = JSON.toJSONString(userList);
        System.out.println("JSON.toJSONString(list) ==>" + str1);
        String str2 = JSON.toJSONString(user1);
        System.out.println("JSON.toJSONString(user1) ==>" + str2);
    
        System.out.println("\\n*********JSON字符串转Java对象*********");
        User jp_user1 = JSON.parseObject(str2,User.class);
        System.out.println("JSON.parseObject(str2,User.class) ==>" + jp_user1);
    
        System.out.println("\\n*********Java对象转JSON对象*********");
        JSONObject jsonObject1 = (JSONObject) JSON.toJSON(user2);
        System.out.println("(JSONObject) JSON.toJSON(user2) ==>" + jsonObject1.getString("name"));
    
        System.out.println("\\n*********JSON对象转Java对象*********");
        User to_java_user = JSON.toJavaObject(jsonObject1,User.class);
        System.out.println("JSON.toJavaObject(jsonObject1,User.class) ==>" + to_java_user);
    
        return "hello";
    
    

由阿里巴巴团队开发,大多方法见名知意

以上是关于SpringMVC-相关知识:JSON的主要内容,如果未能解决你的问题,请参考以下文章

分享知识-快乐自己:SpringMvc整合遇到-前台传JSON参数,后台实体类对象接收

SpringMVC之JSON交互

开始学SpringMVC之Json

springmvc4.0配置ajax请求json格式数据

springmvc接口接收json类型参数设置

SpringMVC4 返回Json数据