Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。
比如:
<pre name="code" class="java">public class Order { public String id; public String OrderName; @Override public String toString() { return "id:"+id+",OrderName:"+OrderName; } }
public class GsonTest { public static void main(String[] args) { Order order=new Order(); order.id="1"; order.OrderName="Book"; Gson gson=new Gson(); String toJson=gson.toJson(order); System.out.println("Order--->JSON:\n"+toJson); Order fromJson=gson.fromJson(toJson,Order.class); System.out.println("JSON--->Order:\n"+fromJson); } }
Order--->JSON:
{"id":"1","OrderName":"Book"}
JSON--->Order:
id:1,OrderName:Book
接下来我们讲解GSON解析JSON的几种情况
1、模板反射对象
<span style="font-size:18px;">public class GsonTest { public static void main(String[] args) { List<Order> orderList=new ArrayList<Order>(); Order order1=new Order(); order1.id="1"; order1.OrderName="Book"; Order order2=new Order(); order2.id="2"; order2.OrderName="Fruit"; orderList.add(order1); orderList.add(order2); Gson gson=new Gson(); Type type=new TypeToken<List<Order>>(){}.getType(); String toJson=gson.toJson(orderList,type); System.out.println("Order--->JSON:\n"+toJson); List<Order> fromJson=gson.fromJson(toJson,type); System.out.println("JSON--->Order:\n"+fromJson); } }</span>
Order--->JSON:
[{"id":"1","OrderName":"Book"},{"id":"2","OrderName":"Fruit"}]
JSON--->Order:
[id:1,OrderName:Book, id:2,OrderName:Fruit]
2、集合使用
public class GsonTest { public static void main(String[] args) { HashMap<String, Object> orderMap=new HashMap<String , Object>(); Order order1=new Order(); order1.id="1"; order1.OrderName="Book"; Order order2=new Order(); order2.id="2"; order2.OrderName="Fruit"; orderMap.put("order1", order1); orderMap.put("order2", order2); Gson gson=new Gson(); Type type=new TypeToken<HashMap<String,Object>>(){}.getType(); String toJson=gson.toJson(orderMap,type); System.out.println("Order--->JSON:\n"+toJson); HashMap<String, Object> fromJson=gson.fromJson(toJson,type); System.out.println("JSON--->Order:\n"+fromJson); } }
Order--->JSON:
{"order2":{"id":"2","OrderName":"Fruit"},"order1":{"id":"1","OrderName":"Book"}}
JSON--->Order:
{order2={id=2, OrderName=Fruit}, order1={id=1, OrderName=Book}}
3、嵌套使用对象
public class Book { public String id; public String name; public String price; }
public class Order { public String id; public String OrderName; public ArrayList<Book> bookList; public HashMap<String, Book> bookMap; }
public class GsonTest { public static void main(String[] args) { Book book1=new Book(); book1.id="1001"; book1.name="Java Think"; book1.price="23"; Book book2=new Book(); book2.id="1002"; book2.name="Gson Test"; book2.price="45"; HashMap<String, Book> orderMap=new HashMap<String , Book>(); orderMap.put("orderMap1", book1); orderMap.put("orderMap2", book2); ArrayList<Book> orderList=new ArrayList<Book>(); orderList.add(book1); orderList.add(book2); Order order=new Order(); order.id="1"; order.OrderName="Book"; order.bookMap=orderMap; order.bookList=orderList; Gson gson=new Gson(); Type type=new TypeToken<Order>(){}.getType(); String toJson=gson.toJson(order,type); System.out.println("Order--->JSON:\n"+toJson); Order fromJson=(Order)gson.fromJson(toJson,type); System.out.println("JSON--->Order:\n"+fromJson); } }
输出:
Order--->JSON:
{"id":"1","OrderName":"Book","bookList":[{"id":"1001","name":"Java Think","price":"23"},{"id":"1002","name":"Gson Test","price":"45"}],"bookMap":{"orderMap2":{"id":"1002","name":"Gson Test","price":"45"},"orderMap1":{"id":"1001","name":"Java Think","price":"23"}}}
JSON--->Order:
Gson.Order@181eda8
转载请注明出处:http://blog.csdn.net/hai_qing_xu_kong/article/details/42242863 情绪控_