生活随笔
收集整理的這篇文章主要介紹了
在Java web中使用json
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
json包下載
- 下載jar包當然是下大廠滴
- 推薦Alibaba的fastjson
- 推薦Google的gjson
- 本文講fastjson
https://github.com/alibaba/fastjson.git
json的常見格式
{"key":"value"}
{"key1":"value", "key2":"value"}
[{"k1":"v1", "k2":"v2"},{"k1":"v1", "k2":"v2"}]
{"key1": {"k1":"v1", "k2":"v2"},"key2": {"k1":"v1", "k2":"v2"}}
fast-json包使用–Java中對象轉換為json字符串
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()));static void objToJson1() {Object json
= JSON
.toJSONString(stu1
, true);System
.out
.println(json
);}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
;}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
;}
static void jsonToObj1() {String json
= JSON
.toJSONString(stu1
);Student obj
= JSON
.parseObject(json
, Student
.class);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
); }
public class Test1 {public static void main(String
[] args
) {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作為數據格式交互
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 {private static final long serialVersionUID
= 1L
;@Overrideprotected void service(HttpServletRequest req
, HttpServletResponse resp
)throws ServletException
, IOException
{String stuJson
= "";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
);}resp
.setContentType("text/json;charset=utf-8");PrintWriter out
= resp
.getWriter();out
.print(stuJson
);out
.close();}}
<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() { $("#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
);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的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。