【问题标题】:How to get a List<JsonPath> from restassured JsonPath如何从放心的 JsonPath 中获取 List<JsonPath>
【发布时间】:2012-09-21 19:50:25
【问题描述】:

我正在使用放心的框架,在它里面,它有 JsonPath 类。 JsonPath 的方法签名是 getList(String path, Class T);

我试图做这样的事情:

List<JsonPath> myList = myJsonPathObject.getList("mypath", JsonPath.class);

我得到一个运行时强制转换异常。那么调用这个的正确格式是什么。 我也尝试过:

List<JsonPath> myList = myJsonPathObject.getList("mypath", new ArrayList<JsonPath>().getClass());

这也失败了。实际上编译失败了。

【问题讨论】:

    标签: java generics rest-assured rest-assured-jsonpath


    【解决方案1】:

    JsonPath 用于从 JSON 文档中提取值。您无法从 JSON 文档中获取“JsonPath”列表。

    【讨论】:

    • 您是否有任何文件来支持您刚刚声明的内容。 json是对象和子对象的标记,本质上json是json中json的标记,所以我不明白为什么不能从json中获取json列表。
    • 好吧,我是该框架的创始人,所以我已经实现了 Rest Assured 附带的 JsonPath,所以知道它不受支持。它可能在其他框架中得到支持。我的一个同事实现了另一个不使用 Groovy 语法的 JsonPath (code.google.com/p/json-path),它可能支持做你想做的事情。
    【解决方案2】:

    我知道这是一个古老的威胁,但有人评论并提醒了我这一点。我实际上找到了这个问题的答案。

    我要做的就是将它转换为Map&lt;String, Object&gt;,并且在遍历对象时,我必须将对象转换为适当的类。

    Map<String, Object> myMap = (Map<String, Object>) myJsonPathObject.get("mypath");
    for (String key : myMap.getKeySet()) {
      Map<String, Object> subMyMap = (Map<String, Object>) myMap.get(key);
    }
    

    所以现在我可以继续获得额外的模型,json 中的 json。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多