Google Gsonを利用してJSON文字列とオブジェクトの相互変換を実現します。


最近のプロジェクトはJSONを使う必要があります。JSON文字列と対象との間でお互いに変換して、インターネットで資料を探しました。googleの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の基本使用はこれだけです。その他は公式文書を参考にしてください。