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

如何使用jsonpath解析json字符串?

萧自珍
2023-03-14

我需要使用jsonpath解析例子1中的json,类似于下面的例子2。但找不到路径,因为json的类型是字符串。请建议我一些可能的方法来解析json字符串,以动态地修改colourCode的值。

例1:

{
    "payload": "{\"carBrand\":{\"model\":{\"colourCode\":2147483647}}}"
}

例2:

{phone:{phoneType:"iPhone","cat":"11"}}

Jsonpath:

$.phone.phoneType

这将返回"iPhone"

共有1个答案

卢文博
2023-03-14

您可以通过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>

您可以参考下面的文档了解您可以使用的各种其他api。

https://github.com/json-path/JsonPath/blob/master/README.md
https://www.baeldung.com/guide-to-jayway-jsonpath
 类似资料:
  • 问题内容: 我有一个包含1-n纬度/经度记录的JSON字符串。看起来像这样: 什么是解析此值以获取经纬度值循环的好方法?转义的双引号是否会影响解析? 谢谢亚历克斯 问题答案: 打印…

  • 问题内容: 我正在尝试解析以下JSONString 这是我的代码: 有人可以帮忙,我的代码不起作用吗?我想解析标题,公司名称,类别等… 问题答案: 您需要从您的jsonstring 创建。 你有里面然后..

  • 问题内容: 我正在尝试解析一个JSON结构,如: 也就是说,JSON中的元素是带有转义json的字符串。 所以,我有一些类似的东西 但这崩溃了 这是因为.c的输出是字符串,而不是JSON。如何让jq解析此字符串? 我最初的解决方案是使用sed将替换所有的逃生字符(,和),但凌乱的,我认为有内置的方式做到这一点? 谢谢! 编辑:另外,这里可用的jq版本是: 我想我可以根据需要更新它。 问题答案: j

  • 问题内容: 我在C#中有一个类似以下的字符串。我需要遍历并创建HTML表输出。我尝试使用JSON.NET,但无法弄清楚如何检索键(名称,年龄和工作)。 表格格式为 任何帮助将不胜感激。 Dave提供的代码在这里是理想的解决方案..但是它适用于.NET 4.0 ..我已经将JSON.NET和以下代码用于.NET 3.5 使用Newtonsoft.Json.Linq; 问题答案: 您可以使用.NET

  • 我需要使用Jackson解析字符串数组(标识符)。我在互联网上没有找到任何例子,所有的例子都展示了如何反序列化某个类的对象数组,但我只需要解析一个字符串数组(不需要为它编写模型类),我该怎么做呢?JSON示例:

  • 无法弄清楚如何将以下带有GSON的JSON字符串解析为任何适当的对象以检索其数据。字符串是: 我发现方括号表示它是一个ArrayList,但里面还有另一个对象。 如果我试着在ArrayList上搜索: 然后它抱怨: 如果我尝试相反的方法: 然后它也在抱怨: 不理解该格式:-/ 感谢您的任何建议!