日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

在Java web中使用json

發布時間:2023/12/10 java 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在Java web中使用json 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

json包下載

  • 下載jar包當然是下大廠滴
  • 推薦Alibaba的fastjson
  • 推薦Google的gjson
  • 本文講fastjson

https://github.com/alibaba/fastjson.git

json的常見格式

  • key - value 鍵值對
{"key":"value"}
  • 多個key - value對
{"key1":"value", "key2":"value"}
  • Java中的List集合
[{"k1":"v1", "k2":"v2"},{"k1":"v1", "k2":"v2"}]
  • Java中的map集合(字典)
{"key1": {"k1":"v1", "k2":"v2"},"key2": {"k1":"v1", "k2":"v2"}}

fast-json包使用–Java中對象轉換為json字符串

  • 先以學生實體類為demo
package com.lovely.entity;import java.sql.Date; import java.sql.Timestamp;import com.alibaba.fastjson.annotation.JSONField;public class Student {private Integer id;private String name;private Integer age;@JSONField(format="yyyy-MM-dd")private Date date;@JSONField(format="yyyy-MM-dd HH:mm:ss")private Timestamp time;public Student() {}public Student(Integer id, String name, Integer age, Date date,Timestamp time) {super();this.id = id;this.name = name;this.age = age;this.date = date;this.time = time;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}public Date getDate() {return date;}public void setDate(Date date) {this.date = date;}public Timestamp getTime() {return time;}public void setTime(Timestamp time) {this.time = time;}@Overridepublic String toString() {return "Student [id=" + id + ", name=" + name + ", age=" + age+ ", date=" + date + ", time=" + time + "]\n";}}
  • 把學生對象,list集合,map集合轉換為json字符串
// 對于有日期的在屬性上加上注解!上面加了。static Student stu1 = new Student(1, "rye", 20, new Date(System.currentTimeMillis()), new Timestamp(System.currentTimeMillis()));static Student stu2 = new Student(2, "bitQian", 19, new Date(System.currentTimeMillis()), new Timestamp(System.currentTimeMillis()));/*** 對象轉換為json字符串 (有時間 日期的 加上@JSONField(format="yyyy-MM-dd") 注解)* {"key1":"value", "key2":"value"}*/static void objToJson1() {// 對于日期的轉型 字段要添加注解Object json = JSON.toJSONString(stu1, true);System.out.println(json);}/*** 集合轉成json字符串* [* {"k1":"v1", "k2":"v2"},* {"k1":"v1", "k2":"v2"}* ]*/static String arrToJson2() {List<Student> list = new ArrayList<Student>();list.add(stu1);list.add(stu2);String json = JSON.toJSONString(list, true);System.out.println(json);return json;}/*** map集合轉換為json字符串* {* "key1": {"k1":"v1", "k2":"v2"},* "key2": {"k1":"v1", "k2":"v2"}* }*/static String mapToJson3() {Map<String, Student> map = new LinkedHashMap<>();map.put("stu1", stu1);map.put("stu2", stu2);String json = JSON.toJSONString(map, true);System.out.println(json);return json;}
  • json字符串轉換為對象
// 返序列化 把json字符串->student對象/集合對象/map字典對象static void jsonToObj1() {String json = JSON.toJSONString(stu1);Student obj = JSON.parseObject(json, Student.class);// 重寫了student toString()System.out.println(obj);}static void jsonToArr2() {String json = arrToJson2();List<Student> list = JSON.parseArray(json, Student.class);System.out.println(list);}static void jsonToMap3() {String json = mapToJson3();Map<?, ?> map = JSON.parseObject(json, Map.class);System.out.println(map); }
  • 測試map的json格式轉換為map集合
public class Test1 {public static void main(String[] args) {// objToJson1();// arrToJson2();// mapToJson3();// jsonToObj1();// jsonToArr2();jsonToMap3();}} {"stu1":{"age":20,"date":"2020-07-10","id":1,"name":"rye","time":"2020-07-10 21:13:31"},"stu2":{"age":19,"date":"2020-07-10","id":2,"name":"bitQian","time":"2020-07-10 21:13:31"} } {stu1={"id":1,"time":"2020-07-10 21:13:31","name":"rye","age":20,"date":"2020-07-10"}, stu2={"id":2,"time":"2020-07-10 21:13:31","name":"bitQian","age":19,"date":"2020-07-10"}}

Ajax請求servlet,以json作為數據格式交互

  • 后臺servlet
package com.lovely.servlet;import java.io.IOException; import java.io.PrintWriter; import java.util.ArrayList; import java.util.HashMap;import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import com.alibaba.fastjson.JSON; import com.lovely.entity.Student;public class LoadDataServlet extends HttpServlet {/*** @author echo lovely* */private static final long serialVersionUID = 1L;@Overrideprotected void service(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {String stuJson = "";/***三種json(object list map)對象的取值 */String msg = req.getParameter("msg");Student stu1 = new Student();stu1.setId(1);stu1.setName("rye");stu1.setAge(20);Student stu2 = new Student();stu2.setId(2);stu2.setName("bitQian");stu2.setAge(19); if ("object".equals(msg)) {stuJson = JSON.toJSONString(stu1);} else if ("list".equals(msg)) {ArrayList<Student> list = new ArrayList<Student>();list.add(stu1);list.add(stu2);stuJson = JSON.toJSONString(list);} else if ("map".equals(msg)) {HashMap<String,Student> map = new HashMap<String, Student>();map.put("stu1", stu1);map.put("stu2", stu2);stuJson = JSON.toJSONString(map);}// 響應json格式字符串resp.setContentType("text/json;charset=utf-8");PrintWriter out = resp.getWriter();out.print(stuJson);out.close();}}
  • 頁面Ajax請求
<html><head><title>My JSP 'list.jsp' starting page</title><script type="text/javascript" src="js/jquery-3.2.1.js"></script><script type="text/javascript"> $(function() { // ready 函數.../*測試三種json(object list map)對象的取值 */$("#btn1").click(function() {$.get("LoadDataServlet",{"msg": "object"},function(data) {console.log(data);console.log(data.id + "\t" + data.name + "\t" + data.age);});});$("#btn2").click(function() {$.get("LoadDataServlet",{"msg": "list"}, function(list) {console.log(list);// 遍歷list json數組for (var i = 0; i < list.length; i ++) {console.log(list[i]);}});});$("#btn3").click(function() {$.post("LoadDataServlet",{"msg": "map"},function (data) {console.log(data);for (var stu in data) {console.log(data[stu].id + "\t" + data[stu].name + "\t" + data[stu].age);}});});});</script></head><body><!-- 測試三種json格式字符串 --><input type="button" value="object" id="btn1"/><input type="button" value="list" id="btn2"/><input type="button" value="map" id="btn3"/></body> </html>
  • 單個student對象

  • list集合對象

  • map集合對象

  • 更新…

總結

以上是生活随笔為你收集整理的在Java web中使用json的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。