当前位置: 首页 > 编程笔记 >

我们如何使用Java中的javax.json API更新现有的JSON数据?

郑燕七
2023-03-14
本文向大家介绍我们如何使用Java中的javax.json API更新现有的JSON数据?,包括了我们如何使用Java中的javax.json API更新现有的JSON数据?的使用技巧和注意事项,需要的朋友参考一下

JsonBuilderFactory 接口是一个工厂来创建JsonObjectBuilder 实例和JsonObjectBuilder 是创建一个构造函数的JSONObject 从头模型。此接口初始化一个空的JSON 对象模型,并提供将名称/值对添加到该对象模型并返回结果对象的方法。我们可以创建一个JsonObjectBuilder 实例,该实例可用于使用createObjectBuilder()方法构建JsonObject 

语法

JsonObjectBuilder createObjectBuilder()

在下面的示例中,我们可以使用新添加的数据更新现有的JSON数据。

示例

import java.io.*;
import javax.json.*;
public class UpdateExistingJsonTest {
   public static void main(String[] args) throws Exception {
      String jsonString = "{\"id\":\"115\", \"name\":\"Raja\", \"address\":[{\"area\":\"Madhapur\", \"city\":\"Hyderabad\"}]}";
      StringReader reader = new StringReader(jsonString);      JsonReader jsonReader = Json.createReader(reader);
      System.out.println("Existing JSON: \n" + jsonString);
      StringWriter writer = new StringWriter();
      JsonWriter jsonWriter = Json.createWriter(writer);
      JsonObject jsonObject = jsonReader.readObject();
      JsonBuilderFactory jsonBuilderFactory = Json.createBuilderFactory(null);
      JsonObjectBuilder jsonObjectBuilder = jsonBuilderFactory.createObjectBuilder();
      for(String key : jsonObject.keySet()) {
         jsonObjectBuilder.add(key, jsonObject.get(key));
      }
      jsonObjectBuilder.add("ContactNumber", "9959984000");
      jsonObjectBuilder.add("Country", "India");
      jsonObject = jsonObjectBuilder.build();
      jsonWriter.writeObject(jsonObject);
      System.out.println("new JSON: \n" + jsonObject);
   }
}

输出结果

Existing JSON:
{"id":"115", "name":"Raja", "address":[{"area":"Madhapur", "city":"Hyderabad"}]}

new JSON:
{"id":"115","name":"Raja","address":[{"area":"Madhapur","city":"Hyderabad"}],"ContactNumber":"9959984000","Country":"India"}
 类似资料:
  • JSON文件:[ { “名称”:“约翰”,“城市”:“柏林”,“工作”:“教师”},{ “名称”:“马克”,“城市”:“奥斯陆”,“工作”:“医生”}] JSONParser parser=新的JSONParser();JSONArray a=(JSONArray)parser.parse(新的FileReader(“f:\file.json”));

  • 问题内容: 这是我的杰森样品 我想更新SName,ZipCode,taxAmount,Quantity和text [1]值,可以通过任何方式进行。我正在文件中使用JSON,而更新标签正在纳入HashMap中 问题答案: 将用新值替换当前值。同样,您可以更新其他值。完成后,您可以使用以下方法将其转换回: 并将其写回到文件中。

  • 我正在使用plugin jQuery datatables并加载我在页面底部DOM中加载的数据,并以以下方式启动插件: 现在,在执行一些操作后,我想使用ajax获得新数据(但不是ajax选项构建在数据中-不要误会我!)并用这些数据更新表。如何使用数据API做到这一点?留档很混乱,我找不到解决办法。任何帮助将非常感谢。谢谢。

  • 本文向大家介绍我们如何在Java中使用JsonGenerator创建JSON?,包括了我们如何在Java中使用JsonGenerator创建JSON?的使用技巧和注意事项,需要的朋友参考一下 该JsonGenerator 是一个基类,定义了公共API编写JSON内容。实例是使用JsonFactory 实例的工厂方法创建的。一旦可以从工厂实例中获取JsonGenerator ,则可以使用writeS

  • 是否有任何方法可以随时更新hibernate加载到程序中的实体的所有引用? 例如,我在A类中加载了id为“1”的产品,并在B类中更改了id为“1”的同一产品的新加载,但A类中的产品没有更改。我该怎么解决这个? 数据在SQL表中更新,而不是在“product”中更新,它是与“productDUP”相同的实体。我该如何解决问题呢?有没有办法在程序中解决,不是每次我们需要的时候都加载数据?

  • 我有一个谷歌表单(这里的例子),有两张表单——表单和数据。我已经设置了表单表,以便可以手动输入条目,单击“更新”按钮后,数据将作为新行发送到数据表的底部,表单字段将被清除,为下一次输入做好准备。 我试图更进一步-如果单击UPDATE按钮,并且零件号字段包含一个已经存在于数据表的列A中的值(意味着它已经在某个时候输入),则不应该有新行已添加,但具有匹配零件号的现有行应改为使用新提交的数据进行更新,将