您的位置:首页 > Web前端 > JavaScript

认识Gson解析Json

2016-07-30 11:36 363 查看
JSON有两种表示结构,对象和数组。

1、对象–》以”{”大括号开始,以”}”大括号结束。中间部分由0或多个以”,”分隔的”key(关键字)/value(值)”对构成,关键字和值之间以”:”分隔,语法结构如代码。

{
key1:value1,
key2:value2,
}


2、数组–》以”[”开始,”]”结束。中间由0或多个以”,”分隔的值列表组成,语法结构如代码。

[
{
key1:value1,
key2:value2
},
{
key3:value3,
key4:value4
}
]


2.1、客户端与服务器进行数据交互时,常常需要将数据在服务器端将数据转化成字符串并在客户端对json数据进行解析生成对象。但是用jsonObject和jsonArray解析相对麻烦。利用Gson和阿里的fastjson可以很方便的将下面四种常用的数据转换成json字符串,并能够将其解析成原数据对象。

类型一:JavaBean

类型二:List<JavaBean>

类型三:List<String>

类型四:List<Map<String,Object>>


3、json字符串:指的是符合json格式要求的js字符串。例如:var jsonStr = “{StudentID:’100’,Name:’tmac’,Hometown:’usa’}”;

4、json对象:指符合json格式要求的js对象。例如:var jsonObj = { StudentID: “100”, Name: “tmac”, Hometown: “usa” };

5、普通的json解析方法即JsonObject和JsonArray的配合使用,这对于解析小数据的json数据还是比较实用,但是当解析json数据比较复杂的时候这种方法就显得比较吃力也比较麻烦了,解析json数据的另外一种方法就是通过Gson解析:

很多时候大家都是不知道这个Bean是该怎么定义,这里面需要注意几点:

1、内部嵌套的类必须是static的,要不然解析会出错;

2、类里面的属性名必须跟Json字段里面的Key是一模一样的;

3、内部嵌套的用[]括起来的部分是一个List,所以定义为 public List b,而只用{}嵌套的就定义为 public C c,

String json = {"a":"100",
"b":[{"b1":"b_value1","b2":"b_value2"},     {"b1":"b_value1","b2":"b_value2"}],
"c": {"c1":"c_value1","c2":"c_value2"}
}


这json使用Gson解析就比较简单,需要定义一个序列化的Bean,这里采用内部类的形式

public class JsonBean {
public String a;
public List<B> b;
public C c;

public static class B {

public String b1;

public String b2;
}

public static class C {
public String c1;
public String c2;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: