Gson JsonParser - 将 JSON 字符串解析为 JsonElement

位置:首页>文章>详情   分类:Web前端   阅读(257)   2023-06-26 07:54:31

Gson <代码>JsonParser 用于将 Json 数据解析为 JsonElementJsonObject 的解析树。 JsonObject 可用于使用 JSON 字符串中的相应键来访问值。

1.解析JSON

Gson 2.8.6开始,我们可以在此类中直接使用以下static方法之一。

  • parseReader(JsonReader)
  • parseReader(阅读器)
  • parseReader(String)
// string is of type java.lang.String
JsonElement jsonElement = JsonParser.parseString​(string);

// ioReader is of type java.io.Reader
JsonElement jsonElement = JsonParser.parseReader​(ioReader);

// jsonReader is of type com.google.gson.stream.JsonReader
JsonElement jsonElement = JsonParser.parseReader​(jsonReader);

在 2.8.6 版本之前,JsonParser 类只有一个默认构造函数。

2. JsonElementJsonObjectJsonArray

一旦我们在 JsonElement 树中解析了 JSON 字符串,我们就可以使用它的各种方法来访问 JSON 数据元素。

例如,使用一种类型检查方法找出它代表什么类型的 JSON 元素:

jsonElement.isJsonObject();
jsonElement.isJsonArray();
jsonElement.isJsonNull();
jsonElement.isJsonPrimitive();

我们可以使用相应的方法将 JsonElement 转换为 JsonObjectJsonArray

JsonObject jsonObject = jsonElement.getAsJsonObject();
JsonArray jsonArray = jsonElement.getAsJsonArray();

一旦我们有了 JsonObjectJsonArray 实例,我们就可以使用它的 get() 方法从中提取字段。

4. Gson JsonParser 例子

Java 程序使用 JsonParser 将 JSON 解析为 JsonElement(和 JsonObject)并使用键获取 JSON 值。

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

public class JsonElementExample {
  public static void main(String[] args) {
    String json = "{'id': 1001, "
        + "'firstName': 'Lokesh',"
        + "'lastName': 'Gupta',"
        + "'email': 'howtodoinjava@gmail.com'}";

    JsonElement jsonElement = JsonParser.parseString(json);

    JsonObject jsonObject = jsonElement.getAsJsonObject();

    System.out.println( jsonObject.get("id") );
    System.out.println( jsonObject.get("firstName") );
    System.out.println( jsonObject.get("lastName") );
    System.out.println( jsonObject.get("email") );
  }
}

程序输出。

1001
"Lokesh"
"Gupta"
"howtodoinjava@gmail.com"

5.使用fromJson()获取JsonObject

我们可以使用 Gson 实例和它的 fromJson() 方法来获得相同的结果。

String json = "{'id': 1001, "
		+ "'firstName': 'Lokesh',"
		+ "'lastName': 'Gupta',"
		+ "'email': 'howtodoinjava@gmail.com'}";

JsonObject jsonObject = new Gson().fromJson(json, JsonObject.class);

System.out.println(jsonObject.get("id"));
System.out.println(jsonObject.get("firstName"));
System.out.println(jsonObject.get("lastName"));
System.out.println(jsonObject.get("email"));

程序输出。

1001
"Lokesh"
"Gupta"
"howtodoinjava@gmail.com"

请将您与使用 Jsonparser 在 Java 中从 json 字符串获取值 相关的问题交给我。

快乐学习!!

地址:https://www.cundage.com/article/gson-jsonparser.html