【问题标题】:how to read a list of objects from the configuration file in play framework如何从播放框架中的配置文件中读取对象列表
【发布时间】:2013-03-29 18:24:40
【问题描述】:

如何从 play 框架中的配置文件中读取用户列表? 我试过做这样的事情:

users=[{uid:123,pwd:xyz},{uid:321,pwd:abc}]

来自播放应用程序

 List<Object> uids = Play.application().configuration().getList("users");

会给我一个对象列表,如果我遍历列表,我会得到每个对象

{uid=123,pwd=xyz} and {uid=321,pwd=abc}

在这一点上,我不知道如何优雅地获取 uid 的值,我可以做一些 hacky 工作,因为省略第一个和最后一个括号并解析之前的等号,但这太难看了!任何的想法? (应用程序是用java编写的)

谢谢

【问题讨论】:

    标签: java playframework-2.0 playframework-2.1


    【解决方案1】:

    避免不推荐使用的getConfigList 方法的Scala 实现将依赖于检索Seq[Configuration],如下所示:

      case class UserConfig(uid: Int, pwd: String)
      val userConfigs: Seq[UserConfig] = configuration.get[Seq[Configuration]]("users").map { userConfig =>
        UserConfig(userConfig.get[Int]("uid"), userConfig.get[String]("pwd"))
      }
    

    【讨论】:

    • configuration.getconfiguration的值是多少?
    • 我得到了我的answer 这是通过依赖注入。
    【解决方案2】:

    由于我最近遇到了同样的问题,但仍然没有答案, 这是我的建议:

    List<User> users = getConfig().getConfigList("users").stream().map(
                config -> new User(config.getString("uid"), config.getBoolean("pwd"))
        ).collect(Collectors.toList());
    

    据我所知,Java 中没有元组或任何东西,您需要使用一个对象或一个包含两个元素的列表。我决定在这里找一个对象,你也可以返回一个列表。

    【讨论】:

      【解决方案3】:

      uid 的声音列表如下:

      # List of UID's
      users=[123,456,789] // every number represents a UID
      

      那么你可以得到这个列表:

      List<Object> uids = Play.application().configuration().getList("users");
      

      然后用这个做你想做的事:

      for (Iterator<Object> iterator = uids.iterator(); iterator.hasNext();) {        
          Object object = (Object) iterator.next();
          System.out.println(object);
      }
      

      这就是你要找的吗? 顺便说一句,您可以阅读有关 Play Framework 配置选项的更多信息:http://www.playframework.com/documentation/2.1.0/Configuration

      【讨论】:

      • 不,这是一个简化的例子,我需要传递有关每个用户的更多信息,假设我需要传递 uid 和密码!
      • 并且文档没有解释如何从配置文件中读取 json 对象
      猜你喜欢
      • 1970-01-01
      • 2016-08-22
      • 2015-03-27
      • 1970-01-01
      • 1970-01-01
      • 2017-06-11
      • 2021-11-09
      • 1970-01-01
      • 2018-01-11
      相关资源
      最近更新 更多