Json-libとGsonの対比
4754 ワード
2.Json-libとGsonの対比
前回はjsonの表現を紹介しましたが、javaでjsonを生成する方法について説明します.
1.json-libでjsonを生成する
使用するjarパッケージ:commons-beanutils-1.8.3.jar, commons-collections-3.2.1.jar, commons-lang-2.4.jar, commons-logging-1.1.1.jar, ezmorph-1.0.6.jar, json-lib-2.3-jdk15.jar
//1.オブジェクト
//2.配列と集合
2)Mapコレクション
//Map集合は特殊ですが、key-valueキー値ペアの対応でJSONObjectでjsonを生成する必要があります.
//3)Mapコレクション拡張
/*
Json-libに比べてGson操作はかなり簡単です
オブジェクトであれ配列であれ、上の複雑なmap集合であれ、
操作はすべて同じで、Gsonはgoogleから出て、比較的に小さいため、その自分のシステムandroidの上で使うのもこれです.
*/
//操作が同じなので、ここでは1つのケースだけを示します.
//jarパッケージを忘れないでください:
gson-2.1.jar
前回はjsonの表現を紹介しましたが、javaでjsonを生成する方法について説明します.
1.json-libでjsonを生成する
使用するjarパッケージ:commons-beanutils-1.8.3.jar, commons-collections-3.2.1.jar, commons-lang-2.4.jar, commons-logging-1.1.1.jar, ezmorph-1.0.6.jar, json-lib-2.3-jdk15.jar
//1.オブジェクト
package com.hx.test;
import com.hx.entity.Person;
import net.sf.json.JSONObject;
public class JsonTest {
public static void main(String[] args) {
Person person = new Person();
person.setName("tom");
person.setAddress("UK");
person.setAge(14);
JSONObject json = JSONObject.fromObject(person);
System.out.println(json.toString());
}
}
// :
//{"address":"UK","age":14,"name":"tom"}
//2.配列と集合
package com.hx.test;
import java.util.ArrayList;
import java.util.List;
import net.sf.json.JSONArray;
public class JsonTest {
public static void main(String[] args) {
List<String> fruit = new ArrayList<String>();
fruit.add("apple");
fruit.add("pear");
fruit.add("orange");
fruit.add("banana");
JSONArray fruits = JSONArray.fromObject(fruit);
System.out.println(fruits.toString());
}
}
// :
//["apple","pear","orange","banana"]
//2)Mapコレクション
//Map集合は特殊ですが、key-valueキー値ペアの対応でJSONObjectでjsonを生成する必要があります.
package com.hx.test;
import java.util.HashMap;
import java.util.Map;
import net.sf.json.JSONObject;
public class JsonTest {
public static void main(String[] args) {
Map<String, String> map = new HashMap<String, String>();
map.put("001", "apple");
map.put("002", "pear");
map.put("003", "orange");
map.put("004", "banana");
JSONObject json = JSONObject.fromObject(map);
System.out.println(json.toString());
}
}
// :
//{"004":"banana","001":"apple","002":"pear","003":"orange"}
//3)Mapコレクション拡張
package com.hx.test;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import net.sf.json.JSONObject;
public class JsonTest {
public static void main(String[] args) {
Map<String, List<String>> map = new HashMap<String, List<String>>();
List<String> strList1 = new ArrayList<String>();
strList1.add("aa");
strList1.add("bb");
strList1.add("cc");
List<String> strList2 = new ArrayList<String>();
strList2.add("dd");
strList2.add("ee");
strList2.add("ff");
List<String> strList3 = new ArrayList<String>();
strList3.add("gg");
strList3.add("hh");
strList3.add("ii");
map.put("001", strList1);
map.put("002", strList2);
map.put("003", strList3);
JSONObject json = JSONObject.fromObject(map);
System.out.println(json.toString());
}
}
// :
//{"001":["aa","bb","cc"],"002":["dd","ee","ff"],"003":["gg","hh","ii"]}
/*
Json-libに比べてGson操作はかなり簡単です
オブジェクトであれ配列であれ、上の複雑なmap集合であれ、
操作はすべて同じで、Gsonはgoogleから出て、比較的に小さいため、その自分のシステムandroidの上で使うのもこれです.
*/
//操作が同じなので、ここでは1つのケースだけを示します.
//jarパッケージを忘れないでください:
gson-2.1.jar
package com.hx.test;
import com.google.gson.Gson;
import com.hx.entity.Person;
public class GsonTest {
public static void main(String[] args) {
Person person = new Person();
person.setAddress("UK");
person.setAge(14);
person.setName("tom");
Gson gson = new Gson();
System.out.println(gson.toJson(person));
}
}
// :
//{"name":"tom","age":14,"address":"UK"}