JsonElement 是一个抽象类,子类有 JsonArray、JsonObject、JsonNull、JsonPrimitive 等。
如何使用
示例: 获取某个 key 的值
package org.example;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import com.google.gson.JsonPrimitive;
import org.junit.jupiter.api.Test;
public class TestJsonElement {
@Test
public void test() {
String jsonData = "{\"age\":18, \"height\":180}";
JsonElement jsonElement = JsonParser.parseString(jsonData);
System.out.println(jsonElement instanceof JsonObject);
// 以上代码输出: true
JsonObject jsonObject = jsonElement.getAsJsonObject();
JsonElement ageValue = jsonObject.get("age");
System.out.println(ageValue);
// 以上代码输出: 18
System.out.println(ageValue instanceof JsonPrimitive);
// 以上代码输出: true
int age = ageValue.getAsInt();
System.out.println(age);
// 以上代码输出: 18
}
}
执行结果:
true
18
true
18
示例: 移除某个 key
代码:
package org.example;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.junit.jupiter.api.Test;
public class TestJsonElement {
@Test
public void test() {
String jsonData = "{\"age\":18, \"height\":180}";
JsonElement jsonElement = JsonParser.parseString(jsonData);
JsonObject jsonObject = jsonElement.getAsJsonObject();
System.out.println("移除 age 前: " + jsonElement);
System.out.println("-- 执行移除操作 --");
jsonObject.remove("age");
System.out.println("移除 age 后: " + jsonElement);
}
}
执行结果:
移除 age 前: {"age":18,"height":180}
-- 执行移除操作 --
移除 age 后: {"height":180}
示例: 添加键值对
add、addProperty 方法可以添加键值对。
代码:
package org.example;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import org.junit.jupiter.api.Test;
public class TestJsonElement {
@Test
public void test() {
String jsonData = "{\"age\":18, \"height\":180}";
JsonElement jsonElement = JsonParser.parseString(jsonData);
JsonObject jsonObject = jsonElement.getAsJsonObject();
System.out.println("添加前: " + jsonElement);
System.out.println("-- 执行添加操作 --");
jsonObject.addProperty("name", "李白");
System.out.println("添加后: " + jsonElement);
}
}
执行结果:
添加前: {"age":18,"height":180}
-- 执行添加操作 --
添加后: {"age":18,"height":180,"name":"李白"}
示例: 获取数组中的每个元素
package org.example;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;
import org.junit.jupiter.api.Test;
public class TestJsonElement {
@Test
public void test() {
String jsonData = "[101, \"102\"]";
JsonElement jsonElement = JsonParser.parseString(jsonData);
JsonArray jsonArray = jsonElement.getAsJsonArray();
JsonElement item0 = jsonArray.get(0);
int itemValue0 = item0.getAsInt();
System.out.println(itemValue0);
// 以上代码输出: 101
JsonElement item1 = jsonArray.get(1);
String itemValue1 = item1.getAsString();
System.out.println(itemValue1);
// 以上代码输出: 102
}
}