đây là file jsonLàm thế nào để thay đổi giá trị trong một tệp json sử dụng XPath/JsonPath trong java
{
"session":
{
"name":"JSESSIONID",
"value":"5864FD56A1F84D5B0233E641B5D63B52"
},
"loginInfo":
{
"loginCount":77,
"previousLoginTime":"2014-12-02T11:11:58.561+0530"
}
}
Tôi muốn thay đổi giá trị của name.by trực tiếp cho XPath/JsonPath Giống như
($.session.name).changevalue("MYSESSINID")
đây chỉ là một ví dụ
tôi một cách chính xác sử dụng thư viện jackson và sử dụng mã dưới đây để đọc qua 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);
như vậy là một cách để thay đổi tên của XPath
PropertyUtils.setProperty(jsonObj, "session.value", "new value");
vẫn trong file nó không làm việc.
PropertyUtils cũng có phương thức setProperty, bạn đã thử điều đó chưa? – flup
@flup setProperty mã không hoạt động của nó không đưa ra bất kỳ lỗi nhưng nó không thay đổi giá trị hoặc – vaibhavcool20
Cây đối tượng chỉ sống trong bộ nhớ. Vì vậy, sau khi bạn thay đổi giá trị trong cây đối tượng, bạn phải tuần tự hóa nó trở lại tệp. – flup