Android中json的解析
Android中json的解析
Json vs XML1.数据可读性基本相同
2.解析手段都很多
3.json数据体积更小
4.json与javascript关系紧密
5.json对数据描述更差
中括号代表一个json数组,比如:
[{"name":"zhangsan","age":20},
{"name":"lisi","age":21}]
Android sdk本身有对json解析的相关类库,但是JsonReader只支持3.0及以上。所以只能使用Gson。
1.为了解析json数据,首先要有一个
JsonReader对象。初始化JsonReader需要
一个StringReader对象做参数。如:
- JsonReader reader = new JsonReader(new StringReader(jsonData));
其实更加方便。如果我没记错的话,专业
名词叫“反序列化”。
第一种是简单的解析:
- JsonReader reader = new JsonReader(new StringReader(jsonData));
- reader.beginArray();
- while(reader.hasNext()){
- reader.beginObject();
- while(reader.hasNext()){
- String tagName= reader.nextName();
- if(tagName.equals("name")){
- System.out.println("name->"+reader.nextString());
- }
- else if (tagName.equals("age")) {
- System.out.println("age->"+reader.nextInt());
- }
- }
- reader.endObject();
- }
- reader.endArray();
- Gson gson = new Gson();
- User user = gson.fromJson(jsonData, User.class);
- System.out.println("name->"+user.getName());
- System.out.println("age->"+user.getAge());
- Type listType = new TypeToken<LinkedList<User>>(){}.getType();
- Gson gson = new Gson();
- LinkedList<User> users = gson.fromJson(jsonData, listType);
- for (User user : users) {
- System.out.println(user.getName());
- System.out.println(user.getAge());
- }
评论暂时关闭