SpringMVC学习(四)——json

发布时间:2022-07-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了SpringMVC学习(四)——json脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

Json

什么是JSON?
  • JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别广泛。
  • 采用完全独立于编程语言文本格式来存储和表示数据。
  • 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
  • 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

在 JavaScript 语言中,一切都是对象。因此,任何JavaScript 支持的类型都可以通过 JSON 来表示,例如字符串、数字、对象、数组等。看看它的要求和语法格式:

  • 对象表示为键值对,数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

JSON 键值对是用来保存 JavaScript 对象的一种方式,和 JavaScript 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 “” 包裹,使用冒号 : 分隔,然后紧接着值:

[{"age":18,"name":"aa"},{"age":19,"name":"bb"},{"age":20,"name":"cc"},{"age":21,"name":"dd"}]

Controller返回JSON数据

导入依赖

<dePEndency>
    <groupId>com.fasterXMl.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.9.7</version>
</dependency>

web.xML

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>sPRingmvc</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <inIT-param>
            <param-name>contextconfigLocation</param-name>
            <param-value>classpath:spring-mvc.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springmvc</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

</web-app>

spring-mvc.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:mvc="http://www.springframework.org/schema/mvc"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans.xsd
           http://www.springframework.org/schema/context
           https://www.springframework.org/schema/context/spring-context.xsd
           http://www.springframework.org/schema/mvc
           https://www.springframework.org/schema/mvc/spring-mvc.xsd">
    <!-- 自动扫描包,让指定包下的注解生效,由IOC容器统一管理 -->
    <context:component-scan base-package="com.zhang.controller"/>
    <!-- 让Spring MVC不处理静态资 -->
    <mvc:default-servlet-handler />
    <!--   支持mvc注解驱动
    在spring中一般采用@RequestMapping注解来完成映射关系
    要想使@RequestMapping注解生效
    必须向上下文中注册DefaultAnnotationHandlerMapping
    和一个AnnotationMethodHandlerAdapter实例
    这两个实例分别在类级别和方法级别处理。
    而annotation-driven配置帮助我们自动完成上述两个实例的注入。    -->
    <mvc:annotation-driven />
    <!-- 视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" id="internalResourceViewResolver">
        <!-- 前缀 -->
        <property name="prefix" value="/WEB-INF/jsp/" />
        <!-- 后缀 -->
        <property name="suffix" value=".jsp" />
    </bean>
</beans>

创建Controller类

@RequestMapping("/t1")
@ResponseBody
public @H_304_667@String json1() {

    User user = new User(18, "aa");
    try {
        System.out.println(new ObjectMapper().writeValueAsString(user));
        return new ObjectMapper().writeValueAsString(user);
    } catch (JsonProcessingException e) {
        e.printStackTrace();
    }
    return null;
}

运行结果:

@H_406_791@SpringMVC学习(四)——json

也可以把@Controller注解改为@RestController,所有方法都返回json字符串,方法上不用使用@ResponseBody注解

@RestController
public class JsonController {}
@RequestMapping("/t2")
public String json2() {

    User user1 = new User(18, "aa");
    User user2 = new User(19, "bb");
    User user3 = new User(20, "cc");
    User user4 = new User(21, "dd");

    List userList = new ArrayList<User>();
    userList.add(user1);
    userList.add(user2);
    userList.add(user3);
    userList.add(user4);

    try {
        System.out.println(new ObjectMapper().writeValueAsString(userList));
        return new ObjectMapper().writeValueAsString(userList);
    } catch (JsonProcessingException e) {
        e.printStackTrace();
    }
    return null;
}

SpringMVC学习(四)——json

脚本宝典总结

以上是脚本宝典为你收集整理的SpringMVC学习(四)——json全部内容,希望文章能够帮你解决SpringMVC学习(四)——json所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。