什么是JSON?
十年的天山網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。全網(wǎng)營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整天山建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“天山網(wǎng)站設(shè)計”,“天山網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。JSON(JavaScript Object Notation:JS對象標記)是一種輕量級的數(shù)據(jù)交換格式。使用廣泛,采用完全獨立于編程語言的文本格式來存儲和表示數(shù)據(jù)。簡潔、清晰、易于閱讀、易于機器解析和生成、可以提升網(wǎng)絡傳輸效率。
Controller返回JSON數(shù)據(jù)
使用Jackson(一種json解析工具)
步驟:
1、導入jar包
com.fasterxml.jackson.core jackson-databind2.9.6
2、編寫web.xml
springmvc org.springframework.web.servlet.DispatcherServlet contextConfigLocation classpath:springmvc-servlet.xml 1 springmvc / encoding org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 encoding /*
3、編寫springmvc-servlet.xml
4、編寫實體類
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
private String name;
private int age;
private String sex;
}
5、編寫一個Controller
@Controller
public class UserController {
@RequestMapping(value="/j1",produces = "application/json;charset=utf-8") //解決JSON亂碼問題
@ResponseBody //它就不會走視圖解析器,會直接返回一個字符串
public String json1() throws JsonProcessingException {
User user = new User("張三",3,"男");
//把它轉(zhuǎn)換為JSON對象(字符串)
ObjectMapper mapper = new ObjectMapper();
String string = mapper.writeValueAsString(user);
return string;
}
}
亂碼統(tǒng)一解決
使用? produces = "application/json;charset=utf-8"? 來解決json亂碼問題比較麻煩,如果項目中有很多請求,那么每個請求都要添加produces屬性。
可以通過Spring配置統(tǒng)一指定,這樣就不用每次都去處理了。
@Controller? ? ? ? 走視圖解析器
@RestController? ? ? ? 不走視圖解析器
@Controller + @ResponseBody = @RestController
1、把user對象轉(zhuǎn)換為JSON對象的顯示結(jié)果:
{"name":"張三","age":3,"sex":"男"}
2、把集合轉(zhuǎn)換為JSON對象
@RequestMapping(value="/j2")
@ResponseBody //它就不會走視圖解析器,會直接返回一個字符串
public String json2() throws JsonProcessingException {
ListuserList = new ArrayList();
User user1 = new User("張三",3,"男");
User user2 = new User("李四",4,"男");
User user3 = new User("王五",5,"男");
userList.add(user1);
userList.add(user2);
userList.add(user3);
//把它轉(zhuǎn)換為JSON對象(字符串)
ObjectMapper mapper = new ObjectMapper();
String string = mapper.writeValueAsString(userList);
return string;
}
顯示結(jié)果:
[{"name":"張三","age":3,"sex":"男"},{"name":"李四","age":4,"sex":"男"},{"name":"王五","age":5,"sex":"男"}]
3、把時間轉(zhuǎn)換為JSON對象
@RequestMapping(value="/j3")
@ResponseBody //它就不會走視圖解析器,會直接返回一個字符串
public String json3() throws JsonProcessingException {
Date date = new Date();
ObjectMapper mapper = new ObjectMapper();
//使用ObjectMapper解析時間后的默認格式為:Timestamp(時間戳)
String string = mapper.writeValueAsString(date);
return string;
}
FastJson
fastjson.jar是阿里開發(fā)的一款專門用于Java開發(fā)的包,可以方便的實現(xiàn)json對象與JavaBean對象的轉(zhuǎn)換,實現(xiàn)JavaBean對象與json字符串的轉(zhuǎn)換,實現(xiàn)json對象與json字符串的轉(zhuǎn)換。實現(xiàn)json的轉(zhuǎn)換方法很多,最后的實現(xiàn)結(jié)果都是一樣的。
步驟:
1、導入依賴
com.alibaba fastjson1.2.60
fastjson中三個主要的類:
①JSONObject代表json對象
②JSONArray代表json對象數(shù)組
③JSON代表JSONObject和JSONArray的轉(zhuǎn)化
@RequestMapping(value="/j4")
@ResponseBody //它就不會走視圖解析器,會直接返回一個字符串
public void json4() throws JsonProcessingException {
ListuserList = new ArrayList();
User user1 = new User("張三",3,"男");
User user2 = new User("李四",4,"男");
User user3 = new User("王五",5,"男");
userList.add(user1);
userList.add(user2);
userList.add(user3);
//Java對象轉(zhuǎn)JSON字符串
String str1 = JSON.toJSONString(userList);
String str2 = JSON.toJSONString(user1);
System.out.println(str1);
System.out.println(str2);
//JSON字符串轉(zhuǎn)Java對象
User java_user = JSON.parseObject(str2,User.class);
System.out.println(java_user);
//Java對象轉(zhuǎn)JSON對象
JSONObject jsonObject1 = (JSONObject)JSON.toJSON(user2);
System.out.println(jsonObject1);
//JSON對象轉(zhuǎn)Java對象
User to_java_user = JSON.toJavaObject(jsonObject1, User.class);
System.out.println(to_java_user);
}
你是否還在尋找穩(wěn)定的海外服務器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準確流量調(diào)度確保服務器高可用性,企業(yè)級服務器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
分享名稱:JSON-創(chuàng)新互聯(lián)
文章起源:http://jinyejixie.com/article4/dsijie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計公司、全網(wǎng)營銷推廣、手機網(wǎng)站建設(shè)、企業(yè)建站、做網(wǎng)站、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容