Java中JsonPath的更快替代品

时间:2013-07-22 16:29:20

标签: java json 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/

List toRet;
String query = "$.store.book[3].price";
try { 
    // if output is a list, good
    toRet = (List) JsonPath.read(filestring_, query, new Filter[0]);
} catch (ClassCastException cce) {
    // if output isn't a list, put it in a list
    Object outObj = null;
    try {
        outObj = JsonPath.read(filestring_, query, new Filter[0]);
    } catch (Exception e) {
        throw new DataSourceException("Invalid file!\n", e, DataSourceException.UNKNOWN);
    }

0 个答案:

没有答案