手记

Java——读取与创建JSON数据

采用Java实现解析JSON字符串,创建Java项目工程,需要引入gson-2.8.1.jar.
一.Java读取JSON数据

import java.io.FileReader;

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;

/**
 * Java读取json数据
 * @author Huff
 *
 */
public class ReadJson {
    public static void main(String[] args) {
        try {
            //创建json解析器
            JsonParser parser = new JsonParser();
            //创建Json对象
            JsonObject object = (JsonObject) parser.parse(new FileReader("test.json"));
            //获取键值将其转化为字符串
            System.out.println("cat="+object.get("cat").getAsString());  
            System.out.println("pop="+object.get("pop").getAsBoolean());
            //读取JSON数组  创建json数据对象
            JsonArray array = object.get("languages").getAsJsonArray();
            //循环输出数组中的值
            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("ide="+subObject.get("ide").getAsString());
                System.out.println("name="+subObject.get("name").getAsString());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }   
    }
}

JSON(test.json)数据如下:

{
  "cat":"it",
  "languages":[
     {"id":1,"ide":"Eclipse","name":"Java"},
     {"id":2,"ide":"XCode","name":"Swift"},
     {"id":3,"ide":"Visual Studio","name":"C#"}
  ],
  "pop":true
}

二.Java创建JSON数据

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;

/**
 * Java创建Json数据
 * @author Huff
 *
 */
public class CreatJson {

    public static void main(String[] args) {
        //创建json对象
        JsonObject object = new JsonObject();
        object.addProperty("cat", "it");
        //构建json数组  
        JsonArray array = new JsonArray();

        JsonObject lan1 = new JsonObject();
        lan1.addProperty("id", 1);
        lan1.addProperty("ide", "MyEclipse");
        lan1.addProperty("name", "java");
        //第一个子对象创建好之后,添加到数组中
        array.add(lan1);

        JsonObject lan2 = new JsonObject();
        lan2.addProperty("id", 2);
        lan2.addProperty("ide", "XCode");
        lan2.addProperty(  "name", "Swift");
        //第一个子对象创建好之后,添加到数组中
        array.add(lan2);

        JsonObject lan3 = new JsonObject();
        lan3.addProperty("id", 3);
        lan3.addProperty("ide", "Sublime");
        lan3.addProperty("name", "HTML5");
        //第一个子对象创建好之后,添加到数组中
        array.add(lan3);
        //添加到Object中
        object.add("languages", array);
        object.addProperty("pop", true);

        System.out.println(object.toString());
    }
}
3人推荐
随时随地看视频
慕课网APP