当前位置: 首页 > 知识库问答 >
问题:

如何放心地从REST响应(json或xml)中提取字段值?

潘琪
2023-03-14

我想从字符串类型的REST响应(json或xml)中提取值。我尝试了以下代码:

final Response response = new ResponseBuilder().setContentType("application/json").setStatusCode(200).setBody("{\"message\":\"hello\"}").build();
Object object = response.path("message");
System.out.println(object);

但是它包含了

Exception in thread "main" java.lang.NullPointerException: Cannot invoke method getObjectMapperConfig() on null object
    at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)
    at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:117)
    at io.restassured.internal.RestAssuredResponseOptionsGroovyImpl.jsonPath(RestAssuredResponseOptionsGroovyImpl.groovy:358)

根本原因是RestAssuredConfig对象在RestAssuredResseOptionsGroovyImpl中为空

那么,既然我已经有了字符串响应,那么在没有get()或post()的情况下,如何从原始字符串响应正确构造Response对象呢?

共有1个答案

邵繁
2023-03-14

您可以尝试以下操作:

RestAssuredResponseOptionsImpl response = new RestAssuredResponseImpl();
response.setConfig(RestAssuredConfig.config());
response.setRpr(new ResponseParserRegistrar());
response.setContentType("application/json");
response.setStatusCode(200);
response.setContent("{\"message\":\"hello\"}");
Object message = response.path("message");
System.out.println(message);
 类似资料:
  • 我有一个列表作为响应返回。我需要从使用product.name和tariffplan.name的列表中获得一个项目。 我使用Java8。以下是我的方法。我拿到了卡。类元素的列表。然后,我需要从列表中获得具有指定“product.name”和“tariffplan.name”的单个项目。 是否可以用Restastured来做这件事?也许像我的例子一样使用。param方法?但是在我的示例中。param

  • 我有一个示例JSON响应 如何验证何时然后当然后 尝试过类似的东西,但它不起作用。 我错过了什么还是做错了什么?

  • 我试图从JSON中提取值,并将其存储在String List中,因为稍后我需要检查我在csv文件中的值是否存在于此List中。 任何人都可以帮我建立一个路径来提取它吗? 现在我在我的控制台上得到了这个。**(它只返回了十个,因为我更改了“limit”参数。 我的代码直到现在: 下面您可以找到JSON结构,我只需要对象“标识符”数组中的所有“accountId”。

  • 我正在收到以下结构的响应: ] 每当我想提取JSON属性时,例如描述,最终的对象不是我所期望的。它创建具有ArrayString的列表。 如何将值从此JSON对象获取到包含值的简单列表?谢谢

  • 问题内容: 首先,我将自由地让自己成为一个笨拙的文科专家,他完全可以自学此脚本。就是说,我正在尝试使用以下代码从USGS水数据服务获取值: 尽管我找到了一些有关如何从JSON响应中提取所需值的教程,但大多数教程都非常简单。我遇到的困难是从该服务返回的看起来非常复杂的响应中提取出来的。查看响应,我可以看到我想要的是来自两个不同部分的值和一个时间值。因此,我可以查看响应并查看所需的内容,但我一生无法解