Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用xpath创建json文件的有效方法?_Java_Json_File_Xpath_Jackson - Fatal编程技术网

Java 使用xpath创建json文件的有效方法?

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文件是可以的,但是如果文件很大

}

这是一个Json文件,我正在通过XPath通过以下代码处理它

{
"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);