Java 使用xpath创建json文件的有效方法?
} 这是一个Json文件,我正在通过XPath通过以下代码处理它Java 使用xpath创建json文件的有效方法?,java,json,file,xpath,jackson,Java,Json,File,Xpath,Jackson,} 这是一个Json文件,我正在通过XPath通过以下代码处理它 { "session": { "name":"lkihilh", "value":"yjgiygugg" }, "loginInfo": { "loginCount":78, "previousLoginTime":"2014-12-02T11:12:40.256+0530" } 在代码的最后一行,mapper.writevalue正在重写整个文件 这对于小的json文件是可以的,但是如果文件很大
{
"session":
{
"name":"lkihilh",
"value":"yjgiygugg"
},
"loginInfo":
{
"loginCount":78,
"previousLoginTime":"2014-12-02T11:12:40.256+0530"
}
在代码的最后一行,mapper.writevalue正在重写整个文件
这对于小的json文件是可以的,但是如果文件很大,它会占用大量资源,那么有没有更有效的方法呢?有一个JsonPath库,JsonPath表达式总是引用json结构,就像XPath表达式与XML文档结合使用一样
请查看此链接此链接可以回答问题,但最好在此处包含答案的基本部分,并提供链接供参考。如果链接页面发生更改,仅链接的答案可能会变得无效。我知道json路径库。我的问题是如何在不重写整个文件的情况下高效地操作json文件。什么让你认为XPath会有所帮助?如果你不想编写整个文件,你不能使用jsonPath或jackson,您可以使用java RandomAccessFile读取和写入文件@flup,因此我创建了一个新问题
ObjectMapper mapper = new ObjectMapper();
Object jsonObj=mapper.readValue(new File(json file), Object.class);
PropertyUtils.setProperty(jsonObj, "session.value", "new value");
PropertyUtils.setProperty(jsonObj, "session.name", "new name");
mapper.writeValue(new File(json file),jsonObj);