当前位置: 首页 > 面试题库 >

javax.json:将新的JsonNumber添加到现有的JsonObject

慕俊语
2023-03-14
问题内容

我想向的现有实例添加属性JsonObject。如果此属性为boolean,则非常简单:

JsonObject jo = ....;
jo.put("booleanProperty", JsonValue.TRUE);

但是,我也想添加一个,JsonNumber但找不到创建的实例的方法JsonNumber。这是我可以做的:

JsonObjectBuilder job = Json.createObjectBuilder();
JsonNumber jn = job.add("number", 42).build().getJsonNumber("number");
jo.put("numberProperty", jn);

但是我想不出一种更肮脏的方式来完成任务。那么-是否有更直接,更简洁的方法向JsonNumber现有实例添加JsonObject


问题答案:

好吧,我自己弄清楚了: 你不能

JsonObject应该是一成不变的。即使JsonObject.put(key, value)存在,在运行时也会抛出UnsupportedOperationException。因此,如果您想向现有资产添加键/值对,则JsonObject需要类似

private JsonObjectBuilder jsonObjectToBuilder(JsonObject jo) {
    JsonObjectBuilder job = Json.createObjectBuilder();

    for (Entry<String, JsonValue> entry : jo.entrySet()) {
        job.add(entry.getKey(), entry.getValue());
    }

    return job;
}

然后与

JsonObject jo = ...;
jo = jsonObjectToBuilder(jo).add("numberProperty", 42).build();


 类似资料:
  • 我正在尝试向PDF文档的第一页添加一些内容。这样做的合适方式是什么? 目前,我的代码可以工作,但它会在文档的第一页之前添加(插入)一个新页面。这里可以用什么来代替 因此,我正在阅读的文档中的内容将作为内容而不是新页面添加到现有的第一页

  • 我有一个现有的Solr设置,运行在一个独立的Solr实例上。我被要求为此设置添加弹性和高可用性。因此,我想将复制添加到我的设置中,我认为SolrCloud是一种方式? 我已经在SolrCloud wiki上浏览了演示。然而,我不确定如何将现有的Solr实例添加到ZooKeeper,然后再添加一些节点以供复制。这是否可以不重新膨胀? 维基上说 注意:如果不使用示例启动solr,请确保在创建集合之前将

  • 问题内容: 有了Jenkins Docker映像,我想向该映像添加完整的’npm’环境。因此,在构建了Dockerfile之后,我同时拥有Jenkins和’npm’环境的映像。 目的是让詹金斯(Jenkins)作业运行shell命令“ npm”。因此,’npm’应该在$ PATH上(在Ubuntu中)。 我已经有了一个包含很多东西的Dockerfile,例如Jenkins和Maven。 这篇文章描

  • 问题内容: 我试图将Integration Services添加到现有的SQL Server 2008实例中。 我去了SQL Server安装中心,然后单击“新安装或向现有安装添加功能”选项。此时,将弹出一个文件系统窗口。我被要求浏览以查找SQL Server 2008 R2安装介质。 我尝试使用 C:Program Files \ MicrosoftSQLServer, 但收到错误消息,该错误消

  • 我有一个名为的现有表。在这个表中,我有5列: persionId 人名 PMid 描述 Pamt 创建此表时,我将和设置为主键。 我现在想在主键中再包含一列——PMID。我如何编写一个语句来做到这一点?(表中已经有1000条记录了)