首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭使用Java JsonPath

关闭使用Java JsonPath
EN

Stack Overflow用户
提问于 2018-07-31 15:07:49
回答 1查看 222关注 0票数 2

我正在尝试在Clojure中使用https://github.com/json-path/JsonPath

从自述文件看,它看起来很简单,特别是因为它使用了静态函数。所以我从自述中复制了这个例子:

代码语言:javascript
复制
(import '[com.jayway.jsonpath JsonPath Criteria Filter])


(JsonPath/parse "{\"a\":\"1\"}") ;; returns a com.jayway.jsonpath.internal.JsonContext

(JsonPath/read (JsonPath/parse "{\"a\":\"1\"}") "$.a")
;; (.read (JsonPath/parse "{\"a\":\"1\"}") "$.a")
;; Exception ->
;; 1. Caused by java.lang.IllegalArgumentException
;; No matching method: read
;; I tried variations of the above line
;; for some reason this seems to want to take `this` as first parameter - I cannot
;; figure out why, and cannot seem to be able to pass a valid value

如何从Clojure调用这个Java静态函数?它为什么要作为this

依赖关系:[com.jayway.jsonpath/json-path "2.4.0"]

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-31 15:40:41

问题是在Predicate上使用read的varargs。在JVM级别上,必须将那些args作为数组传递。使用Java,编译器将处理这个问题。

例如,这项工作:

代码语言:javascript
复制
user=> (import '[com.jayway.jsonpath JsonPath Criteria Filter Predicate])
#<Class@5a114a96 com.jayway.jsonpath.Predicate>
user=> (JsonPath/read "{\"a\":\"1\"}" "$.a" (into-array Predicate []))
"1"
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51616583

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档