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 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;
}
運行結果:

也可以把@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;
}

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/336263.html
標籤:其他
上一篇:??1024,我一直都在~??資料可視化+爬蟲:基于 Echarts + Python 實作的動態實時大屏范例 - 行業搜索指數排行榜【17】
下一篇:vue的生命周期
