Java - 从JSON文件中读取JSON并打印出每个元素?

时间:2016-08-14 23:06:38

标签: java json gson

我有一个名为items.json的JSON文件,这是该文件中包含的内容:

[
  {
    "id": 8484,
    "name": "David",
    "height": "6",
    "weight": 165,
  }
]

我正在尝试使用gson打印出名称和ID。

我希望它打印出来:

David 8484

我搜索了很多例子,但没有一个适用于这种特殊情况,或者他们可以这样做,但我是初学者,需要简化。感谢您提供的任何帮助。

所以我的问题是如何实现这一目标?我将用我当前的代码编辑这个问题,该代码在一分钟内没有工作,抱歉。

1 个答案:

答案 0 :(得分:1)

首先,您向我们展示的JSON是不正确的。有效的是:

[
  {
    "id": 8484,
    "name": "David",
    "height": "6",
    "weight": 165
  }
]

必须删除最后一个逗号。

如何使用Gson?这很简单。 您需要一个将JSON表示为POJO(Plain Old Java Object)的类。 POJO就像骨架。对于你的情况,我会写这样的东西:

public class Person {
    public int id;
    public String name;
    public int height;
    public int weight;
}

然后像这样使用Gson:

Gson gson = new Gson();
String json = "[{\"id\": 8484, \"name\": \"David\", \"height\": \"6\", \"weight\": 165}]";
//Because your JSON has array structure we need to give Gson array of our class
Person[] person = gson.fromJson(json, Person[].class);
//It will print: David 8484
System.out.println(person[0].name + " " + String.valueOf(person[0].id));

我们不需要将JSON作为String,而是fe。作为JSON文件(FileReader)的读者。

如果这没有帮助,你可能在你的项目中没有Gson,但这是另一个问题。以下是Gson的用户指南:Gson User guide