Gson解析复杂JSON字符串的两种⽅式
JSON解析可以使⽤的库:
JSONObject(源⾃Android官⽅)、
Gson(源⾃Google)、
Jackson(第三⽅开源库)、
FastJSON(第三⽅开源库)、
本⽂例⼦使⽤Google提供的Gson。
什么是JavaBean
JavaBean实际上是⼀种特殊的Java类,是⼀种规范,经常⽤于封装数据。JavaBean遵循如下编程原则:
1、必须有⼀个public⽆参构造函数;
2、所有属性私有化private;
3、私有化的属性必须通过public的getter和setter暴露,且⽅法命名需要遵循getXXX(XXX⾸字母需要⼤写,故属性名称前两个字母⼤⼩写必须⼀致,避免混淆)、setXXX规则。
4、可序列化,即实现java.io.serializable接⼝,⽤于实现Bean的持久化。
⽅法⼀:JavaBean定义Json结构
步骤1:根据Json结构定义相应封装类,类的属性(即属性名称)必须与Json结构的key⼀⼀对应。
步骤2:直接把JSON字符串解析成步骤1的类
JavaBean定义:
class Body{
public String getUrl() {
fastjson字符串转数组return url;
}
public void setUrl(String url) {
this.url = url;
}
public RequestData getRequestData() {
return requestData;
}
public void setRequestData(RequestData requestData) {
}
private String url;
private RequestData requestData;
}
class RequestData{
private String ex;
public String getEx() {
return ex;
}
public void setEx(String ex) {
< = ex;
}
}
json解析:
le.gson.Gson;
le.gson.JsonObject;
le.gson.JsonParser;
//具体解析代码
Gson gson = new Gson();
Body bodyObj= gson.fromJson(body,Body.class);
System.out.println("===="+Url());
System.out.println("===="+RequestData().getEx());
⽅式⼆:直接解析最外层Json
楼主的json字符串是⼀个复杂对象,只需要解析出外层的URL和reqData对象,再进⾏转发,实际并不关⼼reqData具体结构,故实际采取这种⽅式。
JsonParser可以将json字符串解析转换为JsonObject, JsonObject可以通过get(key).getAsJsonObject(),直接解析JsonObject、string、int等.
le.gson.Gson;
le.gson.JsonObject;
le.gson.JsonParser;
//具体解析代码
String body = "{\"requestData\":{\"ex\":\"ext\"},\"url\":\"456\"}"; JsonParser parser = new JsonParser();
JsonObject jsonObject = parser.parse(body).getAsJsonObject(); JsonObject s = ("requestData").getAsJsonObject(); System.out.println("=====" + s.toString());
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论