如何使用jsonpath解析json字符串?
我需要使用jsonpath解析示例1中的json,类似于下面的示例2。但找不到路径,因为json的类型是字符串。请建议我一些可能的方法来解析json字符串,以便动态修改colorCode的值 示例1:如何使用jsonpath解析json字符串?,json,Json,我需要使用jsonpath解析示例1中的json,类似于下面的示例2。但找不到路径,因为json的类型是字符串。请建议我一些可能的方法来解析json字符串,以便动态修改colorCode的值 示例1: { "payload": "{\"carBrand\":{\"model\":{\"colourCode\":2147483647}}}" } {phone:{phoneType:"iPhone","cat":"11"}} $.phone.phoneType 示例2: { "
{
"payload": "{\"carBrand\":{\"model\":{\"colourCode\":2147483647}}}"
}
{phone:{phoneType:"iPhone","cat":"11"}}
$.phone.phoneType
示例2:
{
"payload": "{\"carBrand\":{\"model\":{\"colourCode\":2147483647}}}"
}
{phone:{phoneType:"iPhone","cat":"11"}}
$.phone.phoneType
Jsonpath:
{
"payload": "{\"carBrand\":{\"model\":{\"colourCode\":2147483647}}}"
}
{phone:{phoneType:"iPhone","cat":"11"}}
$.phone.phoneType
这将返回“iPhone”您可以通过JsonPath库自己实现您的目标。以下是一个例子:
String jsonString ="{\"phone\":{\"phoneType\":\"iPhone\",\"cat\":\"11\"}}";
String jsonExp = "$.phone.phoneType";
DocumentContext docCtx = JsonPath.parse(jsonString);
JsonPath jsonPath = JsonPath.compile(jsonExp);
String val1=docCtx.read(jsonPath);
System.out.println(val1); // print iPhone
Maven依赖
<dependency>
<groupId>com.jayway.jsonpath</groupId>
<artifactId>json-path</artifactId>
<version>2.4.0</version>
</dependency>
com.jayway.jsonpath中没有JsonNode类。我只能看到ValueNode.JsonNode。有什么我要做的吗?@user3879701修改了答案,并在本地进行了测试。它应该对你有用you@user3879701实际上这是一个错误,您不需要JsonNode。您只能使用普通的JsonPath来实现您的用例。我已经更新了代码,如果您遇到任何问题,请告诉我。谢谢