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"}
};
"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")
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)
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());
}
}
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());
}
}