【发布时间】:2014-12-02 07:57:38
【问题描述】:
这是json文件
{
"session":
{
"name":"JSESSIONID",
"value":"5864FD56A1F84D5B0233E641B5D63B52"
},
"loginInfo":
{
"loginCount":77,
"previousLoginTime":"2014-12-02T11:11:58.561+0530"
}
}
我想改变name的值,直接给XPath/JsonPath Like
($.session.name).changevalue("MYSESSINID")
这只是一个例子
我正确使用 jackson 库并使用以下代码通过 XPath 进行读取
ObjectMapper mapper = new ObjectMapper();
Object jsonObj=mapper.readValue(new File(Json file), Object.class);
Object name=PropertyUtils.getProperty(jsonObj, "session.name");
System.out.println("Name:"+name);
这是他们通过 XPath 更改名称的一种方式
PropertyUtils.setProperty(jsonObj, "session.value", "new value");
仍然在文件中它不工作。
【问题讨论】:
-
PropertyUtils 也有 setProperty 方法,你试过吗?
-
@flup setProperty 代码不起作用它没有给出任何错误但它也没有改变值
-
对象树只存在于内存中。因此,在您更改对象树中的值后,您必须将其序列化回文件。
-
@flup
PropertyUtils.setProperty(jsonObj, "session.name", "lkihilh"); mapper.writeValue(json 文件,jsonObj);如果文件很大,这将把整个 json 代码写在一个文件中它会消耗很多时间是他们用其他方式来做的吗 -
可能最好为新问题创建一个新问题:)
标签: java json xpath jackson jsonpath