从JSON中解析无限量的变量

时间:2016-08-31 13:44:03

标签: java json gson

我目前正在尝试从JSON数组中加载无限量的变量,并且不知道如何执行此操作。

我的JSON文件如下:

{"commands": [
    {"cmd": "hello", "params": "%u", "output": "hello %s!"},
    {"cmd": "ping", "params": "", "output": "pong!"},
    {"cmd": "test", "params": "%ul", "output": "test %s.."}
]}

我正在使用Google的GSON库。

我是否必须手动解析每个命令,或者有没有办法通过gson.fromJson()实现此目的?

2 个答案:

答案 0 :(得分:3)

您可以使用包含数组或Command对象集合的包装器对象作为反序列化过程的模型:

<强> Command.java

public class Command{

  private String cmd;

  private String params;

  private String output;

 // Getters and setters

}

<强> CommandWrapper.java

public class CommandWrapper{

  private List<Command> commands;

  // Getters and setters

}

然后在课堂上你可以用这种方式反序列化JSON:

 Gson gson = new Gson();
 CommandWrapper wrapper = gson.fromJson(myInputJson, CommandWrapper.class);

将您的命令作为列表。

答案 1 :(得分:2)

如果数字真的无限期;您可能希望从输入中创建Java8 ;因为流可以(理论上)没有结束。

但是,您可能只需返回一个特定类别的List,它可以很好地“包裹”您文件中的JSON数据。