springmvc对JSON数据支持

springmvcJSON数据支持

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言。

JSON可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从Web客户传递给服务器端程序。这个字符串看起来有点儿古怪,但是JavaScript很容易解释它,而且JSON可以表示比"名称/值对"更复杂的结构。例如,可以表示数组和复杂的对象,而不仅仅是键和值的简单列表。

JSON数据格式在接口调用、html页面中比较常用,JSON格式比较简单,解析也比较方便,所以使用很普遍。在SpringMVC中,也支持对JSON数据的解析和转换

 

1 JSON表示名称/值对:

按照最简单的形式,可以用下面这样的JSON表示"名称/值对"{ "firstName": "David" }这个示例非常基本,而且实际上比等效的纯文本"名称/值对"占用更多的空间:firstName=Brett但是,当将多个"名称/值对"串在一起时,JSON就会体现出它的价值了。首先,可以创建包含多个"名称/值对"的 记录,比如:

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" }

从语法方面来看,这与"名称 / 值对"相比并没有很大的优势,但是在这种情况下 JSON 更容易使用,而且可读性更好。

例如,它明确地表示以上三个值都是同一记录的一部分花括号使这些值有了某种联系。

 

2 JSON表示数组:

当需要表示一组值时,JSON不但能够提高可读性,而且可以减少复杂性。例如,假设您希望表示一个人名列表。在XML中,需要许多开始标记和结束标记;如果使用典型的名称/值对,那么必须建立一种专有的数据格式,或者将键名称修改为person1-firstName这样的形式。

如果使用JSON,只需将多个带花括号的记录分组在一起:

{ "people": [

{ "firstName": "Brett", "lastName":"McLaughlin", "email": "aaaa" },

{ "firstName": "Jason", "lastName":"Hunter", "email": "bbbb"},

{ "firstName": "Elliotte", "lastName":"Harold", "email": "cccc" }

]}

需求:客户端发送JSON格式的数据,服务器端将JSON格式数据转换为对象类型,然后返回JSON格式数据,接下来客户端对数据内容进行显示。

即:请求和返回都是JSON格式数据。

 

3 开发环境搭建

1.引入maven依赖:

  <!--对json的支持-->
   <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.9.9</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-core</artifactId>
      <version>2.9.9</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-annotations -->
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-annotations</artifactId>
      <version>2.9.9</version>
    </dependency>

2. 添加springmvc对json的支持

<bean
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="messageConverters">
            <list>
                <ref bean="jsonHttpMessageConverter" />
            </list>
        </property>
    </bean>

    <bean id="jsonHttpMessageConverter"
        class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
        <property name="supportedMediaTypes">
            <list>
                <value>application/json;charset=UTF-8</value>
            </list>
        </property>
    </bean>


备注:<mvc:annotation-driven></mvc:annotation-driven>也可以

3.配置controller层代码:

@RequestBody接受前台json数据,把json数据自动封装model

findStuById(@RequestBody Stu stu)

@ResponseBody后台model转换json对象,返回到页面。

  @RequestMapping("/findStuById2.do")
    public @ResponseBody Student findStuById2(){
        Student stu=stuService.FindStu(1);
        System.out.println(stu);
        return stu;
    }

3.运行测试:http://localhost:8080/findStuById2.do

 

 

 

 

 

 

 

posted @ 2019-10-23 10:10  Cool_Yang  阅读(598)  评论(0编辑  收藏  举报