我正在尝试验证Json对象。我使用https://code.google.com/p/rest-assured/wiki/Downloads?tm=2

import static com.jayway.restassured.module.jsv.JsonSchemaValidator.matchesJsonSchemaInClasspath;
import static org.hamcrest.MatcherAssert.assertThat;

import org.junit.Test;

public class testClass {


    @Test public void
    validates_schema_in_classpath() {
        // Given
        String JsonString = "{\"isSuccess\":false}";// Greeting response

        // Then
        assertThat(JsonString, matchesJsonSchemaInClasspath("greeter-schema.json"));
    }
}

greeter-schema.json:http://cs606926.vk.me/v606926718/15603/0Kauo1bTDi8.jpg

即使JsonString不等于此“{\” isSuccess \“:false}”,我也总是可以得到好的结果。

例如,当JsonString =“{\” isSuccess \“:false},{\” isFalse \“:true}”或“{\” isSuccess \“:false},testetstets”时,我得到了确定的结果

最佳答案

使用RestAssured进行架构验证仅断言该值在那里。要针对某个值进行断言,必须确切表示要获取该值的名称(在本例中为isSuccess)。然后针对此派生值进行验证:

assertThat()。body(“isSuccess”,equalTo(false));

实际上,此功能是RestAssured要做的,此处有很多信息:
https://github.com/jayway/rest-assured/wiki/Usage#json-using-jsonpath

09-15 11:42