當前位置: 首頁>>代碼示例>>Java>>正文


Java JsonPath類代碼示例

本文整理匯總了Java中com.jayway.jsonpath.JsonPath的典型用法代碼示例。如果您正苦於以下問題:Java JsonPath類的具體用法?Java JsonPath怎麽用?Java JsonPath使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


JsonPath類屬於com.jayway.jsonpath包,在下文中一共展示了JsonPath類的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: parse

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
private List<DeviceData> parse(String topic, List<String> srcList) {
  List<DeviceData> result = new ArrayList<>(srcList.size());
  for (String src : srcList) {
    DocumentContext document = JsonPath.parse(src);
    long ts = System.currentTimeMillis();
    String deviceName;
    if (!StringUtils.isEmpty(deviceNameTopicExpression)) {
      deviceName = eval(topic);
    } else {
      deviceName = eval(document, deviceNameJsonExpression);
    }
    if (!StringUtils.isEmpty(deviceName)) {
      List<KvEntry> attrData = getKvEntries(document, attributes);
      List<TsKvEntry> tsData = getKvEntries(document, timeseries).stream().map(kv -> new BasicTsKvEntry(ts, kv))
          .collect(Collectors.toList());
      result.add(new DeviceData(deviceName, attrData, tsData, timeout));
    }
  }
  return result;
}
 
開發者ID:osswangxining,項目名稱:iotgateway,代碼行數:21,代碼來源:MqttJsonConverter.java

示例2: getAnswer

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
public static String getAnswer(RestTemplate restTemplate, String question) {
    String url = "http://www.tuling123.com/openapi/api";
    HttpHeaders headers = new HttpHeaders();
    headers.add("Ocp-Apim-Subscription-Key", "3f5a37d9698744f3b40c89e2f0c94fb1");
    headers.add("Content-Type", "application/x-www-form-urlencoded");


    MultiValueMap<String, String> bodyMap = new LinkedMultiValueMap<>();
    bodyMap.add("key", "e2e33efb4efb4e5794b48a18578384ee");
    bodyMap.add("info", question);


    HttpEntity<MultiValueMap<String, String>> requestEntity = new HttpEntity<>(bodyMap, headers);
    String result = restTemplate.postForObject(url, requestEntity, String.class);
    return JsonPath.read(result, "$.text");
}
 
開發者ID:xjtushilei,項目名稱:knowledge-forest-dialogue-recommendation,代碼行數:17,代碼來源:Tuling123.java

示例3: assertPaths

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
private void assertPaths(JsonNode node, boolean shouldExist, String... paths) {
    Object document = Configuration.defaultConfiguration().jsonProvider().parse(node.toString());
    for (String path : paths) {
        try {
            Object object = JsonPath.read(document, path);
            if (isIndefinite(path)) {
                Collection c = (Collection) object;
                assertThat(c.isEmpty()).isNotEqualTo(shouldExist);
            } else if (!shouldExist) {
                Assert.fail("Expected path not to be found: " + path);
            }
        } catch (PathNotFoundException e) {
            if (shouldExist) {
                Assert.fail("Path not found: " + path);
            }
        }
    }
}
 
開發者ID:CSCfi,項目名稱:exam,代碼行數:19,代碼來源:IntegrationTestCase.java

示例4: prepPath

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
/**
 * Assemble an xpath using the given json path and json wrapper.
 *
 * @param jsonPath definite json path
 * @param wrapper object representation of QPP json
 * @return xpath that correlates to supplied json path
 */
public static String prepPath(String jsonPath, JsonWrapper wrapper) {
	String base = "$";
	String leaf = jsonPath;
	int lastIndex = jsonPath.lastIndexOf('.');
	JsonWrapper metaWrapper = new JsonWrapper(wrapper, false);

	if (lastIndex > 0) {
		base = jsonPath.substring(0, lastIndex);
		leaf = jsonPath.substring(lastIndex + 1);
	}

	JsonPath compiledPath = JsonPath.compile(base);
	Map<String, Object> jsonMap = compiledPath.read(metaWrapper.toString());

	Map<String, String> metaMap = getMetaMap(jsonMap, leaf);
	String preparedPath = "";
	if (metaMap != null) {
		preparedPath = makePath(metaMap, leaf);
	}
	return preparedPath;
}
 
開發者ID:CMSgov,項目名稱:qpp-conversion-tool,代碼行數:29,代碼來源:PathCorrelator.java

示例5: evaluateJsonPathToString

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
/**
 * Evaluates provided JSONPath expression into the {@link String}
 *
 * @param evalExpression Expression to evaluate
 * @param jsonSource JSON source
 * @return Evaluation result
 */
public static String evaluateJsonPathToString(String evalExpression,
                                              String jsonSource) {
    try {
        List<Object> parsedData =
                JsonPath.
                        using(Configuration.
                                defaultConfiguration().
                                addOptions(
                                        ALWAYS_RETURN_LIST,
                                        SUPPRESS_EXCEPTIONS)).
                        parse(jsonSource).
                        read(evalExpression);

        return collectionIsNotEmpty(parsedData) ?
                String.valueOf(
                        parsedData.
                                get(FIRST_ELEMENT)) :
                EMPTY;
    } catch (Exception e) {
        LOG.warning(COMMON_EVAL_ERROR_MESSAGE);
    }

    return EMPTY;
}
 
開發者ID:shimkiv,項目名稱:trust-java,代碼行數:32,代碼來源:EvaluationUtils.java

示例6: assertIsValidJsonPath

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
/**
 * Asserts that the string represents a valid JsonPath expression.
 *
 * @param path         Path expression to validate.
 * @param propertyName Name of property.
 */
public void assertIsValidJsonPath(String path, String propertyName) {
    if (path == null) {
        return;
    }
    if (path.isEmpty()) {
        problemReporter.report(new Problem(this, String.format("%s cannot be empty", propertyName)));
        return;
    }
    try {
        JsonPath.compile(path);
    } catch (InvalidPathException e) {
        problemReporter.report(new Problem(this,
                                           String.format("%s with value '%s' is not a valid JsonPath. %s", propertyName, path,
                                                         e.getMessage())));
    }
}
 
開發者ID:networknt,項目名稱:light-workflow-4j,代碼行數:23,代碼來源:ValidationContext.java

示例7: assertJsonEquals

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
public static void assertJsonEquals(String expected, String actual, String... blacklistedFields) {
    LOG.debug("Comparing expected [{}] to actual [{}]", expected, actual);
    DocumentContext expectedDocument = JsonPath.parse(expected);
    DocumentContext actualDocument = JsonPath.parse(actual);

    if (blacklistedFields != null) {
        removeFields(expectedDocument, blacklistedFields);
        removeFields(actualDocument, blacklistedFields);
    }

    try {
        ObjectMapper mapper = new ObjectMapper();

        JsonNode expectedNode = mapper.readTree(expectedDocument.jsonString());
        JsonNode actualNode = mapper.readTree(actualDocument.jsonString());

        assertEquals(expectedNode, actualNode);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
 
開發者ID:Atypon-OpenSource,項目名稱:wayf-cloud,代碼行數:22,代碼來源:HttpTestUtil.java

示例8: createALotOfInstancesWithDifferentUpdateDate

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
@BeforeClass
public void createALotOfInstancesWithDifferentUpdateDate() throws Exception {
    GraphQLResult result = executeSchemaQuery(addSchema);
    assertTrue(result.isSuccessful());

    for (int i = 0; i < INSTANCE_COUNT; i++) {
        result = instanceService.executeQuery(
                addInstance, buildVariableMap(ORDERED_TYPE_NAME), buildSchemaWriteAccess(), DEFAULT_MAX_RECURSE_DEPTH);
        assertTrue(result.isSuccessful());
        /* Sleep 1 millisecond, just to have a slight spread of 'updateDate'. */
        TimeUnit.MILLISECONDS.sleep(1);
    }

    /* Prerequisites for ordering tests: 'updateDate' has unique values and is of type Long. */
    result = instanceService.executeQuery(
            findInstances, buildVariableMap(ORDERED_TYPE_NAME), buildSchemaWriteAccess(), DEFAULT_MAX_RECURSE_DEPTH);
    assertTrue(result.isSuccessful(), result.getErrors().toString());
    String json = objectMapper.writeValueAsString(result.getData());
    Object[] dates = JsonPath.<JSONArray>read(json, "$.viewer.instances.edges[*].node.updateDate").toArray();
    assertTrue(dates[0] instanceof Long, "Expected updateDate-s to be instances of Long");
    assertEquals(new HashSet<>(asList(dates)).size(), INSTANCE_COUNT, "All updateDate-s should have been different.");
}
 
開發者ID:nfl,項目名稱:gold,代碼行數:23,代碼來源:OrderByTest.java

示例9: testNavDate

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
@Test
public void testNavDate() throws IOException {
  OffsetDateTime navDate = OffsetDateTime.of(1970, 1, 1, 0, 0, 0, 0, ZoneOffset.UTC);
  Manifest manifest = new Manifest("http://some.uri", "A label for the Manifest");
  manifest.setNavDate(navDate);
  String json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(manifest);
  DocumentContext ctx = JsonPath.parse(json);
  JsonPathAssert.assertThat(ctx).jsonPathAsString("navDate").isEqualTo("1970-01-01T00:00:00Z");
  assertThat(mapper.readValue(json, Manifest.class).getNavDate()).isEqualTo(manifest.getNavDate());

  Collection coll = new Collection("http://some.uri", "A label for the Collection");
  coll.setNavDate(navDate);
  json = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(coll);
  ctx = JsonPath.parse(json);
  JsonPathAssert.assertThat(ctx).jsonPathAsString("navDate").isEqualTo("1970-01-01T00:00:00Z");
  assertThat(mapper.readValue(json, Collection.class).getNavDate()).isEqualTo(navDate);
}
 
開發者ID:dbmdz,項目名稱:iiif-apis,代碼行數:18,代碼來源:JsonMappingTest.java

示例10: convert

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
public AttributeRequest convert(String topic, MqttMessage msg) {
    deviceNameTopicPattern = checkAndCompile(deviceNameTopicPattern, deviceNameTopicExpression);
    attributeKeyTopicPattern = checkAndCompile(attributeKeyTopicPattern, attributeKeyTopicExpression);
    requestIdTopicPattern = checkAndCompile(requestIdTopicPattern, requestIdTopicExpression);

    String data = new String(msg.getPayload(), StandardCharsets.UTF_8);
    DocumentContext document = JsonPath.parse(data);

    AttributeRequest.AttributeRequestBuilder builder = AttributeRequest.builder();
    builder.deviceName(eval(topic, deviceNameTopicPattern, document, deviceNameJsonExpression));
    builder.attributeKey(eval(topic, attributeKeyTopicPattern, document, attributeKeyJsonExpression));
    builder.requestId(Integer.parseInt(eval(topic, requestIdTopicPattern, document, requestIdJsonExpression)));

    builder.clientScope(this.isClientScope());
    builder.topicExpression(this.getResponseTopicExpression());
    builder.valueExpression(this.getValueExpression());
    return builder.build();
}
 
開發者ID:thingsboard,項目名稱:thingsboard-gateway,代碼行數:19,代碼來源:AttributeRequestsMapping.java

示例11: sendSuccessMaskRequestResponse

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
@Test
public void sendSuccessMaskRequestResponse() throws Exception {
    when(request.getRequestURI()).thenReturn("/api/attachments");
    when(request.getMethod()).thenReturn("PUT");

    String json = producer.createEventJson(request, response, "test", "admin", "key");
    assertEquals("admin", JsonPath.read(json, "$.login"));
    assertEquals("key", JsonPath.read(json, "$.userKey"));
    assertEquals("test", JsonPath.read(json, "$.tenant"));
    assertEquals("attachments changed", JsonPath.read(json, "$.operationName"));
    assertEquals("/api/attachments", JsonPath.read(json, "$.operationUrl"));
    assertEquals("PUT", JsonPath.read(json, "$.httpMethod"));
    assertEquals("{domain=test}", JsonPath.read(json, "$.requestHeaders").toString());
    assertEquals("{domain=test}", JsonPath.read(json, "$.responseHeaders").toString());
    assertEquals(Integer.valueOf(200), JsonPath.read(json, "$.httpStatusCode"));
    assertEquals("HTTP", JsonPath.read(json, "$.channelType"));
    assertEquals("{\"content\":{\"value\":\"mask\",\"text\":\"mask\"}}", JsonPath.read(json, "$.requestBody"));
    assertEquals("{\"content\":{\"value\":\"mask\",\"text\":\"mask\"}}", JsonPath.read(json, "$.responseBody"));
}
 
開發者ID:xm-online,項目名稱:xm-commons,代碼行數:20,代碼來源:TimelineEventProducerUnitTest.java

示例12: sendSuccessMaskResponse

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
@Test
public void sendSuccessMaskResponse() throws Exception {
    when(request.getRequestURI()).thenReturn("/api/attachments/1");
    when(request.getMethod()).thenReturn("GET");

    String json = producer.createEventJson(request, response, "test", "admin", "key");
    assertEquals("admin", JsonPath.read(json, "$.login"));
    assertEquals("key", JsonPath.read(json, "$.userKey"));
    assertEquals("test", JsonPath.read(json, "$.tenant"));
    assertEquals("attachments viewed", JsonPath.read(json, "$.operationName"));
    assertEquals("/api/attachments/1", JsonPath.read(json, "$.operationUrl"));
    assertEquals("GET", JsonPath.read(json, "$.httpMethod"));
    assertEquals("{domain=test}", JsonPath.read(json, "$.requestHeaders").toString());
    assertEquals("{domain=test}", JsonPath.read(json, "$.responseHeaders").toString());
    assertEquals(Integer.valueOf(200), JsonPath.read(json, "$.httpStatusCode"));
    assertEquals("HTTP", JsonPath.read(json, "$.channelType"));
    assertEquals(CONTENT, JsonPath.read(json, "$.requestBody"));
    assertEquals("{\"content\":{\"value\":\"mask\",\"text\":\"someText\"}}", JsonPath.read(json, "$.responseBody"));
}
 
開發者ID:xm-online,項目名稱:xm-commons,代碼行數:20,代碼來源:TimelineEventProducerUnitTest.java

示例13: getTransformationProperties

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
@Test
public void getTransformationProperties() throws Exception {
    preInitNonCreationTests();
    MvcResult result = mvc.perform(
        get(GET_PROPERTIES_VALID_URL)
    ).andDo(print())
        .andExpect(status().is(200))
        .andExpect(content().contentType(DEFAULT_CHARSET_HAL_JSON))
        .andExpect(jsonPath("$.properties").isArray())
        .andExpect(jsonPath("$.properties").isNotEmpty())
        .andExpect(jsonPath("$.properties[0].key").isString())
        .andExpect(jsonPath("$.properties[0].type").isString())
        .andExpect(jsonPath("$.properties[0].description").isString())
        .andExpect(jsonPath("$.properties[0].required").isBoolean())
        .andExpect(jsonPath("$.links[0].rel").value("self"))
        .andExpect(jsonPath("$.links[0].href")
            .value("http://localhost/api/csars/kubernetes-cluster/transformations/p-a/properties"))
        .andReturn();

    MockHttpServletResponse response = result.getResponse();
    String responseJson = new String(response.getContentAsByteArray());
    String[] values = JsonPath.parse(responseJson).read("$.properties[*].value", String[].class);
    long nullCount = Arrays.asList(values).stream().filter(Objects::isNull).count();
    long testCount = Arrays.asList(values).stream().filter(e -> e != null && e.equals(PROPERTY_TEST_DEFAULT_VALUE)).count();
    assertEquals(7, nullCount);
    assertEquals(1, testCount);
}
 
開發者ID:StuPro-TOSCAna,項目名稱:TOSCAna,代碼行數:28,代碼來源:TransformationControllerTest.java

示例14: testElasticsearchRunning

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
public void testElasticsearchRunning() throws IOException {
	MarcElasticsearchClient client = new MarcElasticsearchClient();
	HttpEntity response = client.rootRequest();
	assertNull(response.getContentEncoding());
	assertEquals("content-type", response.getContentType().getName());
	assertEquals("application/json; charset=UTF-8", response.getContentType().getValue());
	String content = EntityUtils.toString(response);
	Object jsonObject = jsonProvider.parse(content);
	// JsonPath.fileToDict(jsonObject, jsonPath);
	
	// JsonPathCache<? extends XmlFieldInstance> cache = new JsonPathCache(content);
	assertEquals("elasticsearch", JsonPath.read(jsonObject, "$.cluster_name"));
	assertEquals("hTkN47N", JsonPath.read(jsonObject, "$.name"));
	assertEquals("1gxeFwIRR5-tkEXwa2wVIw", JsonPath.read(jsonObject, "$.cluster_uuid"));
	assertEquals("You Know, for Search", JsonPath.read(jsonObject, "$.tagline"));
	assertEquals("5.5.1", JsonPath.read(jsonObject, "$.version.number"));
	assertEquals("6.6.0", JsonPath.read(jsonObject, "$.version.lucene_version"));
	assertEquals(2, client.getNumberOfTweets());
}
 
開發者ID:pkiraly,項目名稱:metadata-qa-marc,代碼行數:20,代碼來源:MarcElasticsearchClientTest.java

示例15: getAllPullRequests_should_return_all_pull_requests_as_list

import com.jayway.jsonpath.JsonPath; //導入依賴的package包/類
@Test
public void getAllPullRequests_should_return_all_pull_requests_as_list() throws Exception {
	final Repository repo = mock( Repository.class );
	final String json = new String( Files.readAllBytes(
			Paths.get( "src/test/resources/org/retest/rebazer/service/bitbucketservicetest/response.json" ) ) );
	final DocumentContext documentContext = JsonPath.parse( json );
	when( config.getTeam() ).thenReturn( "test_team" );
	when( repo.getName() ).thenReturn( "test_repo_name" );
	when( bitbucketTemplate.getForObject( anyString(), eq( String.class ) ) ).thenReturn( json );

	final int expectedId = (int) documentContext.read( "$.values[0].id" );
	final String expectedUrl =
			"/repositories/" + config.getTeam() + "/" + repo.getName() + "/pullrequests/" + expectedId;
	final List<PullRequest> expected = Arrays.asList( PullRequest.builder().id( expectedId ).repo( repo.getName() )
			.source( documentContext.read( "$.values[0].source.branch.name" ) )
			.destination( documentContext.read( "$.values[0].destination.branch.name" ) ).url( expectedUrl )
			.lastUpdate( documentContext.read( "$.values[0].updated_on" ) ).build() );
	final List<PullRequest> actual = cut.getAllPullRequests( repo );

	assertThat( actual ).isEqualTo( expected );
}
 
開發者ID:retest,項目名稱:rebazer,代碼行數:22,代碼來源:BitbucketServiceTest.java


注:本文中的com.jayway.jsonpath.JsonPath類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。