问题标签 [jsonpath]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
8415 浏览

java - JsonPath - 读取 Java Long 类型

我有看起来像这样的 JSON 数据

{"sessionID":7242750700467747000}

该数字是先前从服务器响应中获得的,并在服务器端生成为 Java Long。客户端识别出自己认为这一点sessionID并将其与请求一起发送。问题是当客户端的请求到达服务器时,我必须再次解析该值以键入 Long。我使用 JsonPath,特别是:

当我像这样解析 JSON 数据时

长 sessionID = JsonPath.read(json, "$.sessionID");

我得到一个例外:

java.lang.ClassCastException:java.lang.Integer 无法转换为 java.lang.Long

所以看起来这个数字被 JsonPath 解析为整数。这肯定会导致错误的结果,因为 Integer 小于 Long。JsonPath 中是否有任何方法可以将数据解析并返回为 Long?

0 投票
3 回答
15136 浏览

json - 使用 Jmeter 中的“Json Path Extractor”从 JSON 响应中提取多个值

请帮我提取account_name = max使用 Jmeter Json Path Extractor

0 投票
3 回答
1002 浏览

json - CometD 和 Tomcat 未使用长轮询

我在让tomcat 与cometD 和Longpolling 一起工作时遇到问题。

我在萤火虫中看到所有请求都在 ms 区域中,尽管轮询应该保持至少 1 秒。服务器在 ms 时间内没有响应。

这是我在萤火虫中得到的:

我的 web.xml

我的 pom:安装 maven-war-plugin org.cometd.javascript cometd-javascript-dojo org.mortbay.jetty jetty-maven-plugin 10 /

我确实错过了 longpoll 配置的一些东西?

0 投票
3 回答
36625 浏览

java - JsonPath NoClassDefFoundError,或 Java 中 JsonPath 的替代方案

出于与我正在从事的项目相关的原因,例如,我希望对 JSON 文件的整个查询作为字符串保存$.store.book[*].title(而不是必须将文档的每个级别临时存储为单独的对象) .

我目前正在使用 JsonPath(版本 0.8.0,这是我能找到的最新版本),这基本上正是我正在寻找的,但我得到了下面显示的异常。我只是使用 JsonPath 谷歌代码页上给出的示例 JSON,使用他们的示例查询之一。

我在这里做错了什么?或者,如果没有解决方案,Java 中是否有替代 JsonPath 的方法?我希望能够将整个查询作为字符串传递,并且它必须使用 Java。

功能:

例外:

练习 JSON:

0 投票
1 回答
967 浏览

json - 如何使用 JMeter 解析无序 JSON 对象中的空值

我们正在接收来自 Web 服务的 JSON 响应——我们可以在运行测试时使用JMeter轻松解析它。我们最近发现的问题是 JSON 对象中的字段并不总是相同的顺序。因此,正则表达式会中断。

以下是我们尝试过的解决方案:

1.) JSON 路径提取器(来自 jp@gc):
这很酷,可以让您选择所需的元素。问题是当有一个null值时,它根本不会读取它。

2.)然后我们尝试添加一个BeanShell -预处理器来将变量设置为null初始值,这样当它达到条件时它会被正确执行。这种方法的问题在于,一旦设置为null,如果 JSON 路径提取器选择了一个值,它就不会更改为任何值。

有没有人对我可以让它工作的其他方式有任何想法?如果您有任何问题或需要澄清,请告诉我。

0 投票
0 回答
3825 浏览

java - Java 中 JsonPath 的更快替代方案

对于大型 JSON 文件,JsonPath 似乎相当慢。

在我的项目中,我希望用户能够将整个查询作为字符串传递。我使用 JsonPath 是因为它可以让你一次完成整个$.store.book[3].price查询JsonPath.read(fileOrString, "$.store.book[3].price", new Filter[0])。是否有更快的方法与 Javascript 中的 JSON 文件进行交互?能够将整个查询作为字符串传递是理想的,但如果必须,我会编写一个解析器。有任何想法吗?

即使是小的优化也会有所帮助。例如,我目前每次查询时都从 JSON 文件中读取。将整个文件复制到开头的字符串并改为查询字符串会更好吗?

编辑:对于那些说“这是 Javascript,而不是 Java”的人,嗯,它实际上是 Java。JsonPath 是一种类似 Javascript 的查询语言,但我正在编写的文件肯定是 Java。只有查询是用 Javascript 编写的。以下是有关 JsonPath 的一些信息和一段代码:https ://code.google.com/p/json-path/

0 投票
2 回答
1795 浏览

javascript - 如何用正则表达式替换和更正json路径字符串?

我有一个 javascript 字符串数组,带有修改后的 json 路径,如下所示:

如何更改此列表中的所有元素,使其成为有效的 json 路径?我的意思是这样的:

0 投票
1 回答
337 浏览

json - 无法在 Jmeter 中解析 json 响应

我尝试用 jmeter 解析 JSON 响应,然后在 JDBC 请求中使用解析值。我有一个 Json 路径,如:

但是当我在以后的请求中使用该变量时,结果是:

所以它不是变量而是json小文件。我该如何解决这个问题?

0 投票
4 回答
3803 浏览

java - jayway jsonpath 使用的默认类型?

当我有一个值时

我想使用 spring 3.2 Resutlmatcher 执行以下操作:

其中 myPojo.getMyX 返回一个 double,测试失败,因为 json 被转换为 BigDecimal,错误消息

我怎样才能避免这种情况?

0 投票
2 回答
6609 浏览

c# - 在 C# 中使用带有 JsonPath 的过滤器

我正在使用C# 的 JsonPath来查询一些 JSON 数据。JsonPath 没有自带解析器,因此根据Rick Sladkey 的建议,我使用Json.NET将我的 Json 字符串解析为嵌套IDictionary对象、IList数组和原语的集合。然后我使用 JsonPath 对其进行过滤(在添加Rick Sladkey 的答案中建议的类之后)。

作为参考,这是我的代码中实际处理所有这些的部分:

我首先使用 JsonPath 的原因是它的过滤器功能。您不仅可以进行普通查询,例如"$.store.book[*].title"(获取书店中所有书名的数组),还可以进行查询"$.store.book[?(@.category == 'fiction')].title"(获取书店中所有类别匹配“小说”的书名的数组)。我需要能够将整个查询作为字符串传递,因此能够在查询时进行过滤非常有帮助。

不幸的是,我在让这个过滤器功能工作时遇到了一些麻烦。我希望我必须对 JsonNetValueSystem 类(最初在上述堆栈溢出答案中定义)或 JsonPath 命名空间(您可以从JsonPath 的谷歌代码页获取 JsonPath.cs )进行调整。如果有一些外部工具或 Json.NET 的替代解析机制可以让我保持 JsonPath 的过滤而不必编写太多额外的代码,那将是理想的,但我很确定我将不得不改变 JsonNetValueSystem或 JsonPath 本身。(这两个都相当容易更改,因为它们只是 .cs 文件,但如果没有更多工作,我无法真正深入研究 Json.NET。)

我实际上似乎无法弄清楚原始 JsonPath 代码在哪里处理过滤,也无法弄清楚为什么 JsonNetValueSystem 类会剥夺它的功能。任何有关如何在查询字符串中添加过滤功能的建议将不胜感激。即使只是“不要乱用 JsonPath,只需更改 JsonNetValueSystem”,反之亦然。