MyBatis之動態SQL
阿新 • • 發佈:2021-01-19
JSON
JSON (JavaScript Object Notation) 是一種輕量級的資料交換格式。JSON 是 JS 物件的字串表示法,它使用文字表示一個 JS 物件的資訊,本質是一個字串。
1、JSON 和 JS 物件互轉
var user = { name: "小斑鳩", motto: "Hello World" } // JS物件轉換為JSON字串,使用 JSON.stringify() var str = JSON.stringify(user); // JSON字串轉換為JS物件,使用 JSON.parse() var obj = JSON.parse(str);
json資料表示:
{
"name": "小斑鳩",
"motto": "Hello World"
}
- 花括號儲存物件
- 方括號儲存陣列
2、使用 Controller 實現返回 JSON 資料
正常返回會走檢視解析器,市面上有很多第三方jar包可以實現返回字串,如jackson
1)、導包
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.11.3</version> </dependency>
2)、@ResponseBody,將伺服器端返回的物件轉換為json物件響應回去。
@ResponseBody
public String json(){
User user = new User("小斑鳩","Hello World");
return new ObjectMapper().writeValueAsString(user);
}
3)、若出現亂碼問題,需要設定一下編碼格式,以及它返回的型別。
- 通過@RequestMapping的produces屬性來實現
@RequestMapping(value = "/xxx", produces = "application/json;charset=utf-8")
- 通過配置檔案實現
<!--springmvc 統一解決json中文亂碼問題-->
<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>
4)、返回Date問題。
- 時間預設返回的json字串變成時間戳格式:Timestamp,需關閉它的時間戳功能。
@ResponseBody
public String json() throws JsonProcessingException {
ObjectMapper objectMapper = new ObjectMapper();
//關閉時間戳功能
objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TEMESTAMPS, false);
//時間格式化:自定日期格式物件
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
return objectMapper.writeValueAsString(new Date());
}