json解析
json (javascript object notation)轻量级的数据交换格式,一般多用于web服务器和客户端的数据交互
json数据格式分两种:
jsonObject和jsonArray
前者是一种无需的键值对方式存储数据,例如{“name”,”zhou”} key必须为string类型value可以为其他许多类型
后者是一种有序的value集合,类似于数组一样
解析json的两种方法:
以一个Java对象person为例 (id,name)
1. 使用json-lib的包解析
java Object对象 --- >> json Object
Person p = new Person(1,"zhou");
JsonObject jsonObject = new JsonObject();
jsonObject.put("person", p ); //此方法也可以替换为element
java Object对象 << --- json Object
Perosn p = (Person)json.toBean(jsonObject , Person.class);
Java集合对象 --- >> json Array
List<Person> persons = new ArrayList<Person>();
JsonObject jsonObject = new JsonObject();
jsonObject.put("persons",persons );
JsonArray jsonArray = jsonObject.getJsonArray("person");
Java集合对象 << --- json Array
List<Person> persons = (List<Person>)jsonArray.toCollection(jsonArray , Person.class);
2. 使用google的Gson解析库解析,使用方便简单,方法很简单,fromJson toJson
java Object对象 --- >> json Object
Gson gson = new Gson();
JsonObject jsonObject = gson.toJson(person);
java Object对象 << --- json Object
Perosn p = (Person)gson.fromJson(gson.toJson(person), Person.class);
Java集合对象 --- >> json Array
List<Person> persons = new ArrayList<Person>();
Gson gson = new Gson();
JsonArray jsonArray = gson.toJson(persons);
Java集合对象 << --- json Array
List<Person> persons = (List<Person>)gson.fromJson(gson.toJson(person), new TypeToken<List<person>>(){}.getType);