【问题标题】:How to add an object as a property of a JsonObject object?如何将对象添加为 JsonObject 对象的属性?
【发布时间】:2014-03-23 01:34:01
【问题描述】:

这是我正在做的事情:

JsonObject jobj = new JsonObject();
jobj.addProperty("name", "great car");

我希望添加另一个属性,其值为对象,如下所示:

jobj.addProperty("car", A_CAR_OBJECT);

但 GSON 似乎不允许我这样做 jobj.addProperty("car", A_CAR_OBJECT)。我最终会做以下事情:

String json = new Gson().toJson(jobj);

获取 Json 字符串。

这可行吗?我是否以正确的方式使用 GSON?还是我应该只使用HashMap 将所有数据放入其中,然后使用new Gson().toJson()

【问题讨论】:

  • A_CAR_OBJECT 必须是字符串、数字、JsonObject 或 JsonArray。
  • 所以,我不能使用 Gson 来做我想做的事,对吗?谢谢!
  • 我不是专家,但据我了解,您不能直接这样做。您可以创建一个包含对象中的值的 JsonObject,并将该 JsonObject 添加到整个 JSON。这就是 Jackson 风格的工具包在幕后所做的。
  • 感谢您的意见!

标签: java json gson


【解决方案1】:

你可以这样做:

jobj.add("car", new Gson().toJsonTree(A_CAR_OBJECT));

【讨论】:

  • 严格来说应该是jobj.add("car", new Gson().toJsonTree(A_CAR_OBJECT)); addProperty 没有 JsonElement 作为第二个参数的重载。不过让我到了那里,谢谢!
  • 为什么不 jobj.add("car", A_CAR_OBJECT);直接?
  • 否则你会得到你的对象作为字符串:"{}"
猜你喜欢
  • 2015-11-15
  • 2017-09-20
  • 2015-09-21
  • 2011-11-23
  • 1970-01-01
  • 2022-08-04
  • 1970-01-01
  • 2019-12-27
  • 2019-11-20
相关资源
最近更新 更多