前書き
JSON:JavaScrpit Object Notation JSオブジェクト表記は、軽量のインタラクティブ形式です。これは、ECMAScript(European Computer Associationによって開発されたjs仕様)のサブセットに基づいており、プログラミング言語から完全に独立したテキスト形式を使用してデータを格納および表現します。簡潔で明確な階層構造により、JSONは理想的なデータ交換言語になっています。読み取りと書き込みは簡単ですが、マシンの解析と生成も簡単で、ネットワークの伝送効率を効果的に向上させることができます。
オブジェクト形式
class Person{
private String name;
private String sex;
}
JSON格式:
JSON:{
"name":"小明"
"sex":"应该是男的"
}
一个对象,由一个大括号表示.括号中描述对象的属性.通过键值对来描述对象的属性(可以理解为,大括号中,包含的是一个个的键值对.)
格式:
键与值之间使用冒号连接,多个键值对之间使用逗号分隔.
键值对的键应使用引号引住(通常Java解析时,键不使用引号会报错.而JS能正确解析.)
键值对的值,可以是JS中的任意类型的数据
配列形式
在JSON格式中可以与对象互相嵌套[元素1,元素2...]
場合
コードは次のとおりです(例):
{
"name":"小明"
"sex":"亲自验证是男的"
"friend":["小红","小兰",{
"name":"小黄"
"info":"这个绝对是一个可爱的女孩子"
}],
"heihei":{
"name":"大长刀",
"length":"40m"}
}
Java与JSON
- JavaのオブジェクトをJSON形式の文字列にすばやく変換します。
- JSON形式の文字列をJavaオブジェクトに変換します。
グソン
- オブジェクトをJSON文字列に変換する
转换JSON字符串的步骤:
1.引入JAR包
2.在需要转换JSON字符串的位置编写如下代码即可:
Stringjson=newGson().toJSON(要转换的对象);
接下来我们来看案例
Book.java
public class Book {
private String id;
private String name;
private String info;
public Book(String id, String name, String info) {
this.id = id;
this.name = name;
this.info = info;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getInfo() {
return info;
}
public void setInfo(String info) {
this.info = info;
}
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o == null || getClass() != o.getClass()) {
return false;
}
Book book = (Book) o;
return Objects.equals(id, book.id) &&
Objects.equals(name, book.name) &&
Objects.equals(info, book.info);
}
@Override
public int hashCode() {
return Objects.hash(id, name, info);
}
}
Book b=BookDao.find();
String json=newGson().toJson(b);
System.out.println(json);
- JSONオブジェクトをオブジェクトに変換する
1.引入JAR包
2.在需要转换Java对象的位置,编写如下代码:
对象=newGson().fromJson(JSON字符串,对象类型.class);
場合:
Gson g = new Gson();
//转换 {"id":"100","name":"金苹果","info":"种植苹果真辛苦"}
Book b = g.fromJson("{\"id\":\"100\",\"name\":\"金苹果\",\"info\":\"种植苹果真辛苦\"}",Book.class);
System.out.println(b.getId());
FastJson
- オブジェクトをJSON文字列に変換する
转换JSON字符串的步骤:
1.引入JAR包
2.在需要转换JSON字符串的位置编写如下代码即可:
Stringjson=JSON.toJSONString(要转换的对象);
Bookb=BookDao.find();
Stringjson=JSON.toJSONString(b);
System.out.println(json);
- JSON文字列をオブジェクトに変換する
1.引入JAR包
2.在需要转换Java对象的位置,编写如下代码:
类型对象名=JSON.parseObject(JSON字符串,类型.class);
或
List<类型>list=JSON.parseArray(JSON字符串,类型.class);
// 转换 : {"id":"1002","info":"床前明月光,疑是地上霜。举头望明月,低头思故乡。","name":"唐诗三百首"}
Book book = JSON.parseObject("{\"id\":\"1002\",\"info\":\"床前明月光,疑是地上霜。举头望明月,低头思故乡。\",\"name\":\"唐诗三百首\"}",Book.class);
System.out.println(book.getId());