json有两种数据结构,分别是有序的jsonArray和无序的jsonObject。
使用gson解析gson数据首先要导入gson的jar包
jsonArray文件:
{
}
jsonObject文件:
{
}
java代码:
package testJson; 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; public class TestJson { public static void main(String[] args) { try { //解析jsonArray数据 // JsonParser parser=new JsonParser(); //创建JSON解析器 // JsonObject object; //创建JsonObject对象 // object = (JsonObject) parser.parse(new FileReader("src/jsonObject.json")); // System.out.println("name="+object.get("name").getAsString()); //将json数据转为为String型的数据 // System.out.println("isTrue="+object.get("isTrue").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()); // } //解析jsonObject数据 JsonParser parser=new JsonParser(); //创建JSON解析器 JsonObject object; //创建JsonObject对象 object = (JsonObject) parser.parse(new FileReader("src/jsonArray.json")); System.out.println("name="+object.get("name").getAsString()); //将json数据转为为String型的数据 System.out.println("isTrue="+object.get("isTrue").getAsBoolean()); //将json数据转为为boolean型的数据 JsonObject language = object.get("language").getAsJsonObject(); JsonObject language1 = language.get("language1").getAsJsonObject(); System.out.println("---------------"); System.out.println("id="+language1.get("id").getAsInt()); System.out.println("name="+language1.get("name").getAsString()); } catch (JsonIOException e) { e.printStackTrace(); } catch (JsonSyntaxException e) { e.printStackTrace(); } catch (FileNotFoundException e) { e.printStackTrace(); } } }
jsonArray的输出结果:
name=cq
isTrue=true
---------------
id=1
name=Java
---------------
id=2
name=C++
jsonObject的输出结果:
name=cq
isTrue=true
---------------
id=1
name=Java
文章来源: 使用GSON解析json数据