gson简单使用及下载地址

来源:互联网 发布:优化人力资源配置 编辑:程序博客网 时间:2024/05/19 02:27

gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

和json-lib相比,Gson操作就相当的更简单了不管是对象还是数组,还是上面较复杂的map集合,操作都是一样的,不依赖其他jar,使用起来很方便简单。


下载地址:http://code.google.com/p/google-gson/downloads/list

 

package gson;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.io.OutputStreamWriter;import java.lang.reflect.Type;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import com.google.gson.Gson;import com.google.gson.GsonBuilder;import com.google.gson.reflect.TypeToken;import com.google.gson.stream.JsonReader;import com.google.gson.stream.JsonWriter;/** * Gson常用操作 *  * @author xuyw *  */public class Test { public static void main(String[] args) throws Exception {  List<Map<String, String>> list = new ArrayList<Map<String, String>>();  Map m = new HashMap();  m.put("longitude", "123.999");  m.put("latitude", "28.999");  Map m2 = new HashMap();  m2.put("longitude", "124.333");  m2.put("latitude", "24.9");  list.add(m);  list.add(m2);  String[] str = new String[2];  str[0] = "123.999";  str[1] = "28.999";  User user = new User(1, "张三");  Gson gson = new Gson();  String listjson = gson.toJson(list);//集合转json  String mapjson = gson.toJson(m);//map转json  String arrayjson = gson.toJson(str);//数组转json  String javabeanjson = gson.toJson(user);//对象转json  System.out    .println("->********************Object to JSON********************->");  System.out.println("list -> 转json: " + listjson);  System.out.println("Map -> 转json: " + mapjson);  System.out.println("Array -> 转json: " + arrayjson);  System.out.println("JavaBean -> 转json: " + javabeanjson);  System.out    .println("->********************JSON to Object  ********************->");  List<User> tusers = new ArrayList<User>();  for (int i = 0; i < 5; i++) {   tusers.add(new User(i, "user" + i));  }  String list_userjson = gson.toJson(tusers);  System.out.println("json -> 转泛型集合: " + list_userjson);  List<User> list_user = gson.fromJson(list_userjson,    new TypeToken<List<User>>() {    }.getType());  for (User u : list_user) {   System.out.println("姓名:" + u.getName());  }  System.out    .println("json -> 转泛型集合List<Map<String,String>>: " + listjson);  List<Map> listmapList = gson.fromJson(listjson,    new TypeToken<List<Map<String, String>>>() {    }.getType());  for (Map map : listmapList) {   System.out.println("longitude:" + map.get("longitude"));  }  System.out.println("json -> 转javabean: " + listjson);  User user2 = gson.fromJson(javabeanjson, User.class);  System.out.println(user2.getName());  // GsonBuilder gsonBuilder = new GsonBuilder();  // // 通过GsonBuilder 的create生成Gson对象  // Gson gson2 = gsonBuilder.create();  //  // // 通过TypeToken活动Type对象  // String gsonstr = gson2.toJson(tusers, new TypeToken<List<User>>() {  // }.getType());  // System.out.println(gsonstr);  File file = new File("gson.txt");// 把json保存文本  OutputStream out = new FileOutputStream(file);  JsonWriter writer = new JsonWriter(new OutputStreamWriter(out, "UTF-8"));  gson.toJson(listmapList, new TypeToken<List<Map<String, String>>>() {  }.getType(), writer);  writer.flush();  InputStream input = new FileInputStream(file);  // JsonReader reader = new JsonReader(new InputStreamReader(input));  // List<Map> readertxt = gson.fromJson(reader,  // new TypeToken<List<Map<String, String>>>() {  // }.getType());  List<Map> readertxt = gson.fromJson(new InputStreamReader(input),    new TypeToken<List<Map<String, String>>>() {    }.getType());  System.out.println("读取本地json文件");  for (Map map : readertxt) {   System.out.println("longitude:" + map.get("longitude"));  } }}


 

原创粉丝点击