java中创建解析json主要用的是google-gson这个第三方包
将其导入到lib文件下 随后在config build path中将其导入
随后便可以使用这个包
创建测试文件test.json
{"a":[{1:"cao",2:"kai"}]}
随后在main函数中先创建json的解析器
//创建解析器
JsonParser parser = new JsonParser();
随后是json的对象 都是用try catch来进行创建的
//创建解析器
JsonParser parser = new JsonParser();
//创建json的对象
try {
//强制类型转换
JsonObject object = (JsonObject) parser.parse(new FileReader("test.json"));
parse中可以是文件 json的字符串 或者是网上的数据 要创建缓冲区
//创建json的数组
//创建json的数组
JsonArray array = object.get("a").getAsJsonArray();
随后首先get到 再转换为其他的数据类型
for(int i = 0; i < array.size(); i++){
JsonObject subObject = array.get(i).getAsJsonObject();
System.out.print(subObject.get("1").getAsString());
System.out.print(subObject.get("2").getAsString());
整体代码如下
public class JSONTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建解析器
JsonParser parser = new JsonParser();
//创建json的对象
try {
//强制类型转换
JsonObject object = (JsonObject) parser.parse(new FileReader("test.json"));
//创建json的数组
JsonArray array = object.get("a").getAsJsonArray();
for(int i = 0; i < array.size(); i++){
JsonObject subObject = array.get(i).getAsJsonObject();
System.out.print(subObject.get("1").getAsString());
System.out.print(subObject.get("2").getAsString());
}
} catch (JsonIOException | JsonSyntaxException | FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
创建json 创建jsonObject的对象 如果要添加属性 就用json.addProperty这个方法 添加另一个json对象 比如 json数组 就要用add
public static void main(String[] args) {
// TODO Auto-generated method stub
JsonObject object = new JsonObject();
//添加属性值
object.addProperty("cat", "it");
//创建json的数组
JsonArray array = new JsonArray();
//创建json的对象
JsonObject lan1 = new JsonObject();
lan1.addProperty("id", 1);
lan1.addProperty("name", "java");
array.add(lan1);
//直接添加另一个json的对象
object.add("lang", array);
//转化为字符串
System.out.println(object.toString());
}
打印出如下