如何在JSR-353(JSON-P)规范之后克隆JsonObject(阴影和深度)

sca*_*ca. 5 java json javax.json

我将JsonObject转换为String,然后将它们解析回来.

public static JsonObject clone(JsonObject o) {
  if (o == null)
    return null;

  StringWriter buffer = new StringWriter();
  JsonWriter writer = Json.createWriter(buffer);
  writer.write(o);
  writer.close();

  return Json.createReader(new StringReader(buffer.toString())).readObject();
}
Run Code Online (Sandbox Code Playgroud)

我寻找更优雅的方法.

Sot*_*lis 6

克隆是没有意义的JsonObject.该javadoc的状态

JsonObjectclass表示不可变的 JSON对象值(零个或多个名称/值对的无序集合).

强调我的.只需重新使用该对象即可.没有人能够改变它.

  • @Sridhar-Sarnobat好问题.我找不到任何明显的东西.看起来你必须从旧的`JsonObject`的属性构建新的`JsonObject`.你必须自己完成整个过程. (2认同)