java - 我无法使用 Gson 库正确读取 JSON

标签 java json gson

我需要使用Gson库读取json,但我有一个异常:

Exception in thread "main" com.google.gson.JsonSyntaxException: java.io.EOFException: End of input at line 1 column 2 path $.

Java 类

class Data {

    public Data() {
    }

    int value;
    Data left, right, dad;

    public Data(int value, Data left, Data right) {
        this.value = value;
        this.left = left;
        this.right = right;
    }

    public int getValue() {
        return value;
    }

    public void setValue(int value) {
        this.value = value;
    }

    public Data getLeft() {
        return left;
    }

    public void setLeft(Data left) {
        this.left = left;
    }

    public Data getRight() {
        return right;
    }

    public void setRight(Data right) {
        this.right = right;
    }

}

以下代码演示了我尝试从 JSON 构建对象的情况

Gson gson = new Gson();
Scanner in = new Scanner(System.in);
System.out.println("put your json");
String json = in.next();
test = gson.fromJson(json, Data.class);

Json

 {
  "value": 1,
  "left": null,
  "right": {
    "value": 2,
    "left": {
      "value": 3,
      "left": null,
      "right": {
        "value": 7,
        "left": null,
        "right": null
      }
    },
    "right": {
      "value": 4,
      "left": {
        "value": 6,
        "left": null,
        "right": null
      },
      "right": {
        "value": 5,
        "left": null,
        "right": null
      }
    }
  }
}

我不明白我做错了什么,请帮助我:D

最佳答案

in.next() 将读取一行。您需要从所有行构建一个String

如果将原始 Json 硬编码为 String ,可能就没问题了。如果您需要这样做,此站点上有用于从 System.in 读取多行的答案(尽管您可能需要包含某种方式来表明您已完成发送数据)。

关于java - 我无法使用 Gson 库正确读取 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60546285/

相关文章:

java - GSON在解析okHttp响应时返回null

java - 从 python 脚本执行另一个程序的命令

c# - Asp.Net 在 json 中返回自定义对象

java - 使用 Retrofit 从 REST 获取响应时出现 NullPointer

java - 使用嵌套类映射 Json 字符串

javascript - 使用 VB.net 获取 JSON 格式

java - 为 ByteBuffer 分配创建一个辅助函数 android OpenGL ES

java - Jasper Reports : Subeport showing null values in Main Report, 数据源是一个 java 列表

java - 将泛型与 GWT-RPC 一起使用未按预期工作

arrays - 在 Swift 中读取 JSON 中的嵌套数组和元组