使用Gson添加现有的json字符串

 滑膛 发布于 2023-02-11 14:47

我有一个包含一些任意json的String对象.我想将它包装在另一个json对象中,如下所示:

{
   version: 1,
   content: >>arbitrary_json_string_object<<
}

如何可靠地将我的json字符串作为属性添加到它而不必手动构建它(即避免繁琐的字符串连接)?

class Wrapper {
   int version = 1;
}

gson.toJson(new Wrapper())
// Then what?

请注意,新增JSON应该没有逃脱,但被包装为一个有效的JSON实体,像这样的一部分:

{
   version: 1,
   content: ["the content", {name:"from the String"}, "object"]
}

特定

String arbitraryJson = "[\"the content\", {name:\"from the String\"}, \"object\"]";

T.K... 9

对于那些在这个主题上冒险的人,请考虑这一点.

A a = getYourAInstanceHere();
Gson gson = new Gson();
JsonElement jsonElement = gson.toJsonTree(a);
jsonElement.getAsJsonObject().addProperty("url_to_user", url);
return gson.toJson(jsonElement);


Sotirios Del.. 7

简单,将您的bean转换为a JsonObject并添加属性.

Gson gson = new Gson();
JsonObject object = (JsonObject) gson.toJsonTree(new Wrapper());
object.addProperty("content", "arbitrary_json_string");
System.out.println(object);

版画

{"version":1,"content":"arbitrary_json_string"}


giampaolo.. 5

这是我的解决方案:

  Gson gson = new Gson();
  Object object = gson.fromJson(arbitraryJson, Object.class);

  Wrapper w = new Wrapper();
  w.content = object;

  System.out.println(gson.toJson(w));

在哪里我改变了你的Wrapper课程:

// setter and getters omitted
public class Wrapper {
  public int version = 1;
  public Object content;
}

Wrapper如果要隐藏反序列化/序列化的详细信息,也可以为自己编写自定义序列化程序.

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有