我能够使用 RESTA 保证从服务中检索 JSON。
我想使用JSONPath功能提取JSON,然后使用JSONAssert进行比较。
下面是我的示例:
@Test
public void doAPITestExample() throws JSONException {
// retrieve JSON from service
Response response = RestAssured.given().get("http://localhost:8081/mockservice");
response.then().assertThat().statusCode(200);
String body = response.getBody().asString();
System.out.println("Body:" + body);
/*
{"datetime": "2018-06-21 17:48:07.488384", "data": [{"foo": "bar"}, {"test": "this is test data"}]}
*/
// able to compare entire body with JSONAssert, strict=false
Object data = response.then().extract().path("data");
System.out.println("Response data:");
System.out.println(data.getClass()); // class java.util.ArrayList
System.out.println(data.toString());
// JSONAssert data with strict=false
String expectedJSON = "{\"data\":[{\"foo\": \"bar\"}, {\"test\": \"this is test data\"}]}";
JSONAssert.assertEquals(expectedJSON, response.getBody().asString(), false);
// How do I extract JSON with JSONPath, use JSONAssert together?
}
如何让JSONPath返回一个JSONObject,可以被JSONAsser使用?
在代码示例中:
Object data = response.then().extract().path("data");
这将返回一个 java.util.数组列表
。如何将其与 JSON 资产一起使用,以便与预期的 JSON 进行比较?
如果我执行data.toString()
,这将返回一个无法解析的字符串,因为缺少对带空格字符串的字符串值的引号处理:
String dataString = response.then().extract().path("data").toString();
JSONArray dataArray = (JSONArray) JSONParser.parseJSON(dataString);
结果:
org.json.JSONException: Unterminated object at character 24 of [{foo=bar}, {test=this is test data}]
是否可以仅从JSON中提取data
属性并在该部分上针对JSON Schema运行它?
注意:返回的整个JSON相当大。我只想验证它的data
属性。
执行JSON模式验证的示例仅从JSON中查找data
属性是什么?
谢谢;
您可以在响应对象中使用jsonPath方法。
例子:
// this will return bar as per your example response.
String foo = response.jsonPath ().getString ("data[0].foo");
有关Json路径的更多信息,请查看此处。
问题内容: 我有以下json: 基于的更改。 知道这一点,有没有办法使该字段保持字符串?这个想法是使用调用传递的正确处理程序,然后在其中使用正确的struct 解析字符串。 例: 先感谢您。 问题答案: 使用json.RawMessage获取字段的原始JSON文本: 像这样使用它: 在操场上跑。
我需要在Spring MVC中创建一个可以处理JSON和Multipart Form请求的方法。 这是我的方法的签名: ImageDTO类如下所示: 所以这个场景是我需要支持两个场景:1。从表单向上加载图像,其中内容类型为多部分表单(所有DTO成员均不为null)2。使用JSON上传图像,仅使用imageUrl。在本例中,请求正文如下所示: 当前的实现很好地处理了多部分请求,但在发送JSON时,I
我有一个非常简单的mysql记录如下: 这是它的冬眠实体;没什么特别的 为了方便起见,我使用Gson从前端传入的json字符串解析实体 记录的json字符串如下所示: 然后将从json字符串中解析userEntity: 我可以使用和。 如果每个字段都包含在json字符串中,那么事情看起来就像预期的那样。但当某些字段(如被省略时: 这表明我应该进行部分更新,并保留省略的字段不进行修改,但出现了问题。
我想用Spring MVC发布一个包含一些JSON数据的文件。所以我开发了一个rest服务作为
我想用这个JSON正文(包含图片)和改造做一个PUT请求。我在Android下使用它: 有线索吗?
问题内容: 我正在构建RESTful API,并希望为开发人员提供选择以在JSON响应中返回哪些字段的选项。 这篇博客文章显示了几个API(Google,Facebook,LinkedIn)如何允许开发人员自定义响应的示例。这称为部分响应。 一个示例可能看起来像这样: 在上面的示例中,API应该返回用户“ 123”的userId,fullName和title字段。 我正在寻找有关如何在我的REST