Google Gsonを利用してJSON文字列とオブジェクトの相互変換を実現します。
4165 ワード
最近のプロジェクトはJSONを使う必要があります。JSON文字列と対象との間でお互いに変換して、インターネットで資料を探しました。googleのGsonはまだいいです。
無駄話はさておき、次は簡単な例です。
まずソースコードをダウンロードします。
Personエンティティクラス
オブジェクトをJSON形式に変換する文字列
{id】:1、name:「醤油です」、「age」:24}
ListをJSON形式の文字列に変換します。
“id”:0、“name”:“私は0番目”、“age”:10”、“id”:1、“name”:“私は1番目”、“age”:11”、“id”:2、“name”:“私は2番目”、“age”:12”、“id”:3、“nage”私は14、“name”、“naage”:4、“nage”:“私は、“name”14、“name”、“name”、“name”、“naage”、“私は“name”、“name”、“name”、“nage”、“私は“naage”:14”、“nage”、“私は“name”、“name”、“私は”、“」:5、「name」:「私は5番目」、「age」:15}、「id」:6、「name」:「私は6番目」、「age」:16}、「id」:7、「name」:「私は7番目」、「age」:17}、「id」:8、「name」:7:「私は8番目です」、「age」:18}、「id」:9、「name」:「9番目です」、「age」:19}
とてもスタンダードなJsonデータです。
Gsonは、Json関連オブジェクトからjavaエンティティに至る方法を提供します。
私たちは普通二つの状況に会います。 2:オブジェクトリストまたは他の構造に変換します。
まず第一種類を見ます
JSON文字列は上のobjectistr:{id}:1、“name”:“私は醤油”、“age”:24}です。
コード:
第二の種類は、リストの種類に変換されます。
JSON文字列は上のlistStr:「{id]:0,"name":"私は0番目です","age":""""""""""""""""10","""""""""""""""""""""""""""""""""""""""""":"私は2番目です",""",""""""""",""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""“age”:14}、{id”:5、“name”:“私は5番目”、“age”:15}、{id”:6、“name”:“私は6番目”、“age”:16}、{id”:7、“name”:“私は7番目の「、」age":17"、{"id":8"、""name":"私は8番目の"、"、"""、":"id":9"、":"name":"私は9番目の",",","",""",age":"19""です。
コード:
Gsonの基本使用はこれだけです。その他は公式文書を参考にしてください。
無駄話はさておき、次は簡単な例です。
まずソースコードをダウンロードします。
Personエンティティクラス
package com.hsun.json;
/**
* Person
* @author hsun
*
*/
public class Person {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [id=" + id + ", =" + name + ", =" + age + "]";
}
}
エンティティは簡単です。もちろんPersonのフィールドはList、Set、Mapなどでもいいです。オブジェクトをJSON形式に変換する文字列
Gson gs = new Gson();
Person person = new Person();
person.setId(1);
person.setName(" ");
person.setAge(24);
String objectStr = gs.toJson(person);// JSON
System.out.println(" JSON /// "+objectStr);
上のコードはGsonオブジェクトに焦点を当てています。toJason()メソッドはオブジェクトをJson文字列に変換し、上のコードのobjectistrオブジェクトの値は以下の通りです。{id】:1、name:「醤油です」、「age」:24}
ListをJSON形式の文字列に変換します。
Gson gs = new Gson();
List persons = new ArrayList();
for (int i = 0; i < 10; i++) {//
Person ps = new Person();
ps.setId(i);
ps.setName(" "+i+" ");
ps.setAge(i+10);
persons.add(ps);
}
String listStr = gs.toJson(persons);// List JSON
System.out.println(" list JSON /// "+listStr);
上のコードのlistStrオブジェクトの値は以下の通りです。“id”:0、“name”:“私は0番目”、“age”:10”、“id”:1、“name”:“私は1番目”、“age”:11”、“id”:2、“name”:“私は2番目”、“age”:12”、“id”:3、“nage”私は14、“name”、“naage”:4、“nage”:“私は、“name”14、“name”、“name”、“name”、“naage”、“私は“name”、“name”、“name”、“nage”、“私は“naage”:14”、“nage”、“私は“name”、“name”、“私は”、“」:5、「name」:「私は5番目」、「age」:15}、「id」:6、「name」:「私は6番目」、「age」:16}、「id」:7、「name」:「私は7番目」、「age」:17}、「id」:8、「name」:7:「私は8番目です」、「age」:18}、「id」:9、「name」:「9番目です」、「age」:19}
とてもスタンダードなJsonデータです。
Gsonは、Json関連オブジェクトからjavaエンティティに至る方法を提供します。
私たちは普通二つの状況に会います。 2:オブジェクトリストまたは他の構造に変換します。
まず第一種類を見ます
JSON文字列は上のobjectistr:{id}:1、“name”:“私は醤油”、“age”:24}です。
コード:
Person jsonObject = gs.fromJson(objectStr, Person.class);// JSON
System.out.println(" JSON /// "+jsonObject.toString());
は、json文字列および変換対象の種類の2つのパラメータを提供する。第二の種類は、リストの種類に変換されます。
JSON文字列は上のlistStr:「{id]:0,"name":"私は0番目です","age":""""""""""""""""10","""""""""""""""""""""""""""""""""""""""""":"私は2番目です",""",""""""""",""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""“age”:14}、{id”:5、“name”:“私は5番目”、“age”:15}、{id”:6、“name”:“私は6番目”、“age”:16}、{id”:7、“name”:“私は7番目の「、」age":17"、{"id":8"、""name":"私は8番目の"、"、"""、":"id":9"、":"name":"私は9番目の",",","",""",age":"19""です。
コード:
List jsonListObject = gs.fromJson(listStr, new TypeToken>(){}.getType());// JSON List
for (Person p : jsonListObject) {
System.out.println(" JSON List/// "+p.toString());
}
は、上記のコードはType Tokenを使用しており、Gsonが提供するデータタイプ変換器であり、様々なデータセットタイプの変換をサポートすることができる。Gsonの基本使用はこれだけです。その他は公式文書を参考にしてください。