gson解析json php,Gson解析json数据

使用Gson解析json数据

1.当json数据是JsonObject时对应大括号

2.当json数据是jsonArray时对应中括号

[Person [name=xiaoming, age=1, address=meiguo, colorString= null, height =0], Person [name=xiaoming1, age=2, address=meiguo1, colorString= null, height =0], Person [name=xiaoming2, age=3, address=meiguo2, colorString= null, height =0]]

[{"name":"xiaoming","age":1,"address":"meiguo","colorString":null,"height":0},{"name":"xiaoming1","age":2,"address":"meiguo1","colorString":null,"height":0},{"name":"xiaoming2","age":3,"address":"meiguo2","colorString":null,"height":0}]

/**

* @param args

* 实体类中增加属性,而json数据中没有该字段,不影响生成实体类,则生成的实体json数据不包含该字段部分为默认值

* 使用Gson gson = new GsonBuilder().serializeNulls().create();在json数据的字段值值为空的时候也保留该字符串

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

String jsonString ="{\"name\":\"xiaoming\",\"age\" : 1,\"address\":\"meiguo\"}";

String arrayString ="{\"list\":[{\"name\":\"xiaoming\",\"age\" : 1,\"address\":\"meiguo\"}," +

"{\"name\":\"xiaoming1\",\"age\" : 2,\"address\":\"meiguo1\"}," +

"{\"name\":\"xiaoming2\",\"age\" : 3,\"address\":\"meiguo2\"}]}";

String arrayStrings ="[{\"name\":\"xiaoming\",\"age\" : 1,\"address\":\"meiguo\"}," +

"{\"name\":\"xiaoming1\",\"age\" : 2,\"address\":\"meiguo1\"}," +

"{\"name\":\"xiaoming2\",\"age\" : 3,\"address\":\"meiguo2\"}]";

testJsonToObject(jsonString);

testObjectToJson(arrayString);

tokenObjectToJson(arrayStrings);

}

public static void testJsonToObject(String jsonString){

Gson gson = new Gson();

Bean2.Person fromJson = gson.fromJson(jsonString,Bean2.Person.class);

System.out.println(fromJson);

}

public static void testObjectToJson(String json) {

Gson gson = new Gson();

Bean2 bean2 = gson.fromJson(json,Bean2.class);

System.out.println(bean2);

System.out.println(bean2.list);

}

//使用TypeToken解析成集合

public static void tokenObjectToJson(String json) {

//在值为空的时候也保留该字符串

Gson gson = new GsonBuilder().serializeNulls().create();

Type type = new TypeToken>(){}.getType();

Object fromJson = gson.fromJson(json,type);

System.out.println(fromJson);

String json2 = gson.toJson(fromJson);//生成json数据

System.out.println(json2);

}

}

class Bean2 {

List list;

public class Person {

public String name;

public int age;

public String address;

public String colorString;//增加属性,json字段中没有

public int height;//增加属性,json字段中没有

@Override

public String toString() {

return "Person [name=" + name + ", age=" + age + ", address="

+ address + ", colorString= "+colorString+", height ="+height+"]";

}

}

@Override

public String toString() {

return "Bean2 [list=" + list + ", getClass()=" + getClass()

+ ", hashCode()=" + hashCode() + ", toString()="

+ super.toString() + "]";

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值