我有一个名为test.json的json文件,看起来像这样:
{
"Added": {
"type": "K",
"newmem": {
"IDNew": {
"id": "777709",
"type": "LOP"
},
"birthDate": "2000-12-09"
},
"code": "",
"newest": {
"curlNew": "",
"addedForNew": ""
}
}
}
我可以使用以下代码更新json中的id并写回文件:
FileReader reader = new FileReader(filePath); //where file path = D://.../test.json
String keyToUpdate = "Added.newmem.IDNew.id"
String[] keyArr = jsonKey.split("\\." );
String keyToUpdate = keyArr [keyArr.length-1]
keyArr.removeElement(keyArr, keyToUpdate)
for (String key: keyArr){
jsonObject = (JSONObject) jsonObject.get(key);
}
jsonObject.put("id",12345);
FileOutputStream outputStream = new FileOutputStream(filePath);
byte[] strToBytes = jsonObject.toString().getBytes();
outputStream.write(strToBytes);
但是,它不是使用更新的值重写整个 json,而是只写入:
{
"id": "777709",
"type": "LOP"
}
我可以做什么来重写整个json,而不是只重写它的嵌套部分?
更新前的jsonObject只包含“IDNew”节点。
最好的方法是使用Jayway的xPath
private static final Configuration configuration = Configuration.builder()
.jsonProvider(new JacksonJsonNodeJsonProvider())
.mappingProvider(new JacksonMappingProvider())
.build();
String originalJson = "{\r\n"
+ " \"Added\": {\r\n"
+ " \"type\": \"K\",\r\n"
+ " \"newmem\": {\r\n"
+ " \"IDNew\": {\r\n"
+ " \"id\": \"777709\",\r\n"
+ " \"type\": \"LOP\"\r\n"
+ " },\r\n"
+ " \"birthDate\": \"2000-12-09\"\r\n"
+ " },\r\n"
+ " \"code\": \"\",\r\n"
+ " \"newest\": {\r\n"
+ " \"curlNew\": \"\",\r\n"
+ " \"addedForNew\": \"\"\r\n"
+ " }\r\n"
+ " }\r\n"
+ "}";
JsonNode updatedJson = JsonPath.using(configuration).parse(originalJson).set("$.Added.IDNew.id", 12345).json();
System.out.println(updatedJson.toString());
}
问题内容: 我正在使用以下代码使用Python保存网页: 问题 :此代码将html保存为基本html,而不包含javascript,图像等。我想将网页保存为完整(就像我们在浏览器中有选择) 更新 :我现在正在使用以下代码保存webapge的所有js / images / css文件,以便可以将其保存为完整的网页,但是仍然像基本html一样保存了我的输出html: 问题答案: 尝试使用seleniu
我真的需要帮助。 我试图在新机器上运行我的jsp应用程序,jetty给了我这个错误:org.apache.jasper.JasperException:pwc6345:调用javac时有一个错误。需要完整的JDK(而不仅仅是JRE 编辑:问题解决-这是月食月星错误-在月食开普勒,它正在工作
问题内容: 我知道这很长,但是我需要在主要问题之前提供一些背景信息。我正在创建一个页面,该页面将分为两列。这是ui路由器代码: 基本上,用户将过渡到状态,该状态具有如下所示的模板: 将为用户显示两列。左列仅具有一个输入字段和按钮,按下该按钮会将用户转换到状态。 当我们转换到状态时,其控制器将调用,这将在右列中设置其嵌套视图。该状态将首先以随机顺序解析数字数组,然后将其作为参数传入控制器。所述然后部
我将根据提供的键更新mongoose文档的一些字段。例如,当我们在JSON中呈现mongoose文档时。 和更新参数,如下所示。 当我这样运行mongoose api时。 它替换了整个地址对象,最终结果是 它只是替换地址字段,但我想只更新城市字段。这是理想的结果。 谢谢
具有类型的HashMap 希望更新主地图内地图的所有键值对。是一个方法,它在添加值后返回。 我如何在上面的代码中也更新?将值增加1
我想更改按钮的背景色和前景色。我使用了setBackground、setForeground和SetObque(true),它适用于前景,但不适用于按钮的背景。按钮周围有点像黑色边框,但我希望按钮本身是黑色的。我该怎么修?
我有这样一个html元素: 我想按文本行找到一个表格,然后单击垃圾桶图标将其删除。 所以我的想法是循环行<代码> 我的理解是,驱动程序是整个页面 从第一行而不是第二行选择删除按钮。 我也试过了 但它也选择行。 只是为了确保我打印出了if条件下的行(,它打印出了第二行。 知道发生了什么或者我如何选择第二行中的吗?
问题内容: 我正在尝试使用Java在数据库中设置时间戳,但是在我的表中,我得到的只是日期,而没有时间(例如,看起来像“ 2010-09-09 00:00:00”)。 我使用我的mysql数据库中的日期时间字段(因为它似乎是日期时间是比较常见的比时间戳)。我设置日期的代码如下所示: 如何设置日期以包括时间? 编辑: 我按照下面的方法更改了代码,它同时设置了日期和时间。 问题答案: 使用和。仅限日期,