【问题标题】:Parsing JSON File to Java with GSON使用 GSON 将 JSON 文件解析为 Java
【发布时间】:2016-07-29 10:09:59
【问题描述】:

我正在尝试使用 GSONparse JSON 文件发送到 Java,但我遇到了问题

Gson gson = new GsonBuilder().create();
Person p1 = gson.fromJson(new FileReader("/Users/blabla/Desktop/person.json"), Person.class);
System.out.println(p1);

这是我的 Person 类

public class Person {
    private String name;
    private int age;
    private List<String> Friends; 

    //Getters and setters

这是我的 JSON 文件

{
  "Name":"TEXT",
  "Weight":95,
  "Height":1.87,
  "Friends":[
    "FRIEND1",
    "FRIEND2",
    "FRIEND3"
  ]
}

输出为Person@52b2a2d8

我做错了什么?

【问题讨论】:

  • 你可以添加你的例外,你得到
  • 我没有得到任何异常但是输出错误 Person@52b2a2d8 输出的应该不是.json文件数据吧?
  • 除非你把输出或错误或异常我们不能给出一个好的答案。
  • 输出是 Person@52b2a2d8
  • 在person类中添加toString()方法

标签: java json parsing gson


【解决方案1】:

命名很重要....您需要确保JSON keys 与您的班级attributes(小写/大写)等...

要么将您的 JSON 更改为

{ "name":"TEXT", "Weight":95, "Height":1.87, "Friends": [ "fRIEND1", "FRIEND2", "FRIEND3" ] }

或更改您的Person class 属性

private String Name;
private int age;
private List<String>Friends; 

此外,您还需要在您的Person class 中使用Override toString 方法才能获得漂亮的打印效果

例如

将此添加到您的 Person 类中:

    @Override
    public String toString() {

        return (name + " : " + age + " : " + Friends);
    }

【讨论】:

    【解决方案2】:

    如果 Person 类没有 toString 方法,那么结果当然会喜欢这个。你需要重写 toString() 。

    你可以在这里看到关于 toString() How to use the toString method in Java?

    【讨论】:

      【解决方案3】:

      1)您的属性名称应与JSON 值匹配

      2)在eclipse中右键,生成toString()方法。

      例如: 人类应该是

      public class Person {
          String name;
          int age;
          List<String> friends
      
          //Getters and setters
      }
      

      【讨论】:

        猜你喜欢
        • 2011-04-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-29
        • 1970-01-01
        • 2020-02-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多