JAVA中用Gson解析JSON对象和Json数组
很多开发者刚开始接触的时候,不知道如何解析调用接口接收到的JSON数据,
看到JSON数据都头疼,经常有人问我说该如何解析json数据?
今天来给大家举个例子 说说JAVA中用Gson是如何解析JSON字符串的
我们要通过Gson进行解析,那么我们在使用前就需要导入Gson.jar包
JSON解析数据操作步骤:
1.需要进行创建Gson解析器
2.创建JSONObject对象
3.将JSON数据转为为相应的数据
下面大家可要瞪大眼睛看仔细了哦 ,重点来咯
演示一:JSONObject的解析,JAVA解析JSON对象
为了方便起见,我把JSON数据,保存在了JsonTest.json文件里面了
Json数据如下:
{
"resultcode": "200",
"reason": "successed",
"result": {
"today": {
"temperature": "6℃~22℃",
"weather": "晴天 适合去逛公园"
}
}
}
解析Object代码:
package cn.edu.bzu.json;
import java.io.FileNotFoundException;
import java.io.FileReader;
import com.google.gson.JsonArray;
import com.google.gson.JsonIOException;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonSyntaxException;
//www.jsons.cn站长推荐
public class Read {
public static void main(String args[]){
JsonParser parse =new JsonParser(); //创建JSON解析器
try {
JsonObject json=(JsonObject) parse.parse(new FileReader("JsonTest.json")); //创建jsonObject对象
System.out.println("resultcode:" json.get("resultcode").getAsInt()); //将json数据转为为int型的数据
System.out.println("reason:" json.get("reason").getAsString()); //将json数据转为为String型的数据
JsonObject result=json.get("result").getAsJsonObject();
JsonObject today=result.get("today").getAsJsonObject();
System.out.println("temperature:" today.get("temperature").getAsString());
System.out.println("weather:" today.get("weather").getAsString());
} catch (JsonIOException e) {
e.printStackTrace();
} catch (JsonSyntaxException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
JSONArray的解析
下面我们开始解析JSON数组哦
和上面一样,定义我们的JSON文件(JsonObjTest.json)
JSON数据如下:
{
"catstr":"www.jsons.cn",
"language":[
{"id":1,"ide":"eclipse","name":"JavaJson解析"},
{"id":2,"ide":"Visual Stdio 2015","name":"C#Json"}
],
"popstr":false
}
JSON数组解析代码:
package cn.edu.bzu.json;
import java.io.FileNotFoundException;
import java.io.FileReader;
import com.google.gson.JsonArray;
import com.google.gson.JsonIOException;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonSyntaxException;
//www.jsons.cn站长推荐
public class ReadJSON {
public static void main(String args[]){
try {
JsonParser parser=new JsonParser(); //创建JSON解析器
JsonObject object=(JsonObject) parser.parse(new FileReader("JsonObjTest.json")); //创建JsonObject对象
System.out.println("catstr=" object.get("catstr").getAsString()); //将json数据转为为String型的数据
System.out.println("popstr=" object.get("popstr").getAsBoolean()); //将json数据转为为boolean型的数据
JsonArray array=object.get("language").getAsJsonArray(); //得到为json的数组
for(int i=0;i<array.size();i ){
System.out.println("---------------");
JsonObject subObject=array.get(i).getAsJsonObject();
System.out.println("id=" subObject.get("id").getAsInt());
System.out.println("name=" subObject.get("name").getAsString());
System.out.println("ide=" subObject.get("ide").getAsString());
}
} catch (JsonIOException e) {
e.printStackTrace();
} catch (JsonSyntaxException e) {
e.printStackTrace();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
上面的演示够详细吧,要是有什么不懂得可以随时找站长,在使用JSON中遇到什么问题也可以帮你解决哦