您的位置:首页 > 移动开发 > Android开发

Android中JSON数据的解析

2016-03-13 15:05 435 查看
JSON数据:是一款轻量级的数据交换语言,全称:JavaScript Object Notation

Json对象是一个无序的“名称/值,对”集合,

Xml:

<user>

  <name>ZS</name>

  <age>22</age>

  <gender>m</gender>

  <aihao>c</aihao>

  <aihao>h</aihao>

  <aihao>w</aihao>

  <aihao>l</aihao>

  <school>

    <name>tarena</name>

    <loc>bj</loc>

  </school>

</user>

Json:{

  "name":"zs",

  "age":20,

  "gender":"m",

  "aihao":["c", "h", "w", "l"],

  "married":false,

  "school":

    {"name":"tarena","loc":"bj"}

}

Android中如何解析Json?

JsonObject Json对象
String str={

  "name":"zs",

  "age":20,

  "gender":"m",

  "aihao":["c", "h", "w", "l"],

  "married":false,

  "school":

    {"name":"tarena","loc":"bj"}

};

================================
JSONObject obj=new JSONObject(str);

String name=obj.getString("name");

int age=obj.getInt("age");

boolean m=obj.getBoolean("married");

JSONArray ary=obj.getJSONArray("aihao");

JSONObject o2=obj.getJSONObject("school");

o2.getString("name")

obj.getJSONObject("school").getString("loc")

============================================
JSONArray  JSON数组

String str=[ 

             {"name":"zs"}, 

             "hello", 

             true,

             ["c","h"]

           ];

JSONArray ary=new JSONArray(str);

ary.length()  JSONArray的长度

ary.getJSONObject(0).getString("name")

ary.getString(1)

ary.getJSONArray(3).getString(1)

================================================

谷歌Gson技术解析:

1.GSON 这个java类库可以把java对象转换成Json,也可以把Json字符串转换成一个相等的Java对象
2. Gson支持任意复杂Java对象包括没有源代码的对象
package com.nizk;

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.reflect.TypeToken;

public class GsonTools {
public GsonTools(){

}

public static String createGsonString(Object object){
Gson gson =new Gson();
String gsonString =gson.toJson(object);
return gsonString;
}

public static <T> T changeGsonToBean(String gsonString, Class<T> cls) {
Gson gson = new Gson();
T t = gson.fromJson(gsonString, cls);
return t;
}

public static <T> List<T> changeGsonToList(String gsonString, Class<T> cls) {
Gson gson = new Gson();
List<T> list_person = gson.fromJson(gsonString,
new TypeToken<List<T>>() {
}.getType());
return list_person;
}

public static List<Map<String, Object>> changeGsonToListMaps(String gsonString) {
List<Map<String, Object>> list = null;
Gson gson = new Gson();
list = gson.fromJson(gsonString,
new TypeToken<List<Map<String, Object>>>() {
}.getType());
return list;
}

/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
// Person person1 = new Person("张三1", 24, "北京1");
// Person person2 = new Person("张三2", 23, "北京2");
// List<Person> list = new ArrayList<Person>();
// list.add(person1);
// list.add(person2);
//
// String gsonString = createGsonString(list);
// System.out.println(gsonString);
// Gson gson = new Gson();
// List<Person> list_person = changeGsonToList(gsonString,Person.class);
// System.out.println(list_person.toString());
// Person pp = changeGsonToBean(gsonString,Person.class);
// System.out.println(pp);
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("name", "jack");
map.put("age", 23);
Map<String, Object> map2 = new HashMap<String, Object>();
map2.put("name", "rose");
map2.put("age", 24);
list.add(map);
list.add(map2);
String gsonString = createGsonString(list);
System.out.println(gsonString);
List<Map<String, Object>> list2 = changeGsonToListMaps(gsonString);
System.out.println(list2.toString());
}

}

阿里巴巴FastJson技术解析:

1.FastJson送是一个Json处理工具包,包括序列号和反序列化两个部分:
2.速度最快,测试表明,fastjson具有极快的性能,超越其他的Java Json parse,包括自称最快的JackJson
3.功能强大,完成支持JavaBean、集合、Map、日期、emum、支持泛型,支持自省
4.无依赖,能够直接运行在Java SE5.0以上版本
5、支持android ,开源(Apache2.0)
package com.nizk;

import java.util.ArrayList;

import java.util.HashMap;

import java.util.List;

import java.util.Map;

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.TypeReference;

public class Myfastjson {
public Myfastjson(){

}

public static String createJsonString(Object object){
String jsonString =JSON.toJSONString(object);
return jsonString;
}

public static <T> T createJsonBean(String jsonString,Class<T> cls){
T t =JSON.parseObject(jsonString, cls);
return t;
}

public static <T> List<T> createJsonToListBean(String jsonString,Class<T> cls){
List<T> list =null;
list =JSON.parseArray(jsonString, cls);
return list;
}

public static List<Map<String, Object>> createJsonToListMap(String jsonString){
List<Map<String, Object>> list2 =JSON.parseObject(jsonString, 
new TypeReference<List<Map<String,Object>>>(){

});
return list2;
}

public static void main(String[] args) {
List<Map<String, Object>> list =new ArrayList<Map<String,Object>>();
Map<String, Object> map =new HashMap<String, Object>();
map.put("name", "jack");
map.put("age", 23);

Map<String, Object> map1 =new HashMap<String, Object>();
map1.put("name", "rose");
map1.put("age", 23);
list.add(map);
list.add(map1);

String jsonString =JSON.toJSONString(list);
System.out.println(jsonString);
List<Map<String, Object>> list2 =JSON.parseObject(jsonString,
new TypeReference<List<Map<String,Object>>>(){

});
System.out.println(list2.toString());
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Json解析