JSON 嵌套在 POJO 中

2024-02-24

我有一个 POJO 类:

public class D{

    private JSONObject profileData;


    public JSONObject getProfileData ()
    {
        return profileData;
    }

    public void setProfileData (JSONObject profileData)
    {
        this.profileData = profileData;
    }

}

现在我像这样填充这个类:

for (int i =0; i<identities.size();i++){
            D d = new D();

            d.setProfileData(profileData);

            dList.add(d);
        }

我创建 JSON 对象profileData使用 HashMap 来自 GSON:

profileDataInJson = new JSONObject(gson.toJson(map1));

其中 profileDataInJson 的签名是:JSONObject profileDataInJson = null;

现在生成的 JSON 如下所示:

"profileData":{"map":{"ioCinema":"firstValue","ioSIMAvailable":"firstKey","Name":"onePair"}}

其中我在我的主 profileData 对象中插入了一个名为 map 的不需要的对象。

但是,当我在循环内打印它时,我得到

{`"ioCinema":"firstValue","ioSIMAvailable":"firstKey","Name":"onePair"}`

这正是我想要的配置文件数据对象内部,而不嵌套map目的。

我该如何解决这个问题?

“我已经知道我可以通过将 D 类中的 profileData 类型从 JSONObject 转换为 String 来实现此目的,这将引发转义字符 - 但是我正在寻找通用的解决方案”

EDIT:

map1 有两种构造方式,具体取决于用户输入,两种方式如下:

if (args.length >= 4 && args[1].equalsIgnoreCase("onePair")) {

                    map1 = new HashMap<>();
                    String key1 = args[2];
                    String value1 = args[3];


                    map1.put(key1, value1);


                    profileDataInJson = new JSONObject(gson.toJson(map1));

                }

And:

if (args.length >= 1 && args[0].equalsIgnoreCase("update")) {

                if (args.length >= 2)
                    profileData.setName(args[1] != null ? args[1] : "");

                if (args.length >= 3)
                    profileData.setSIMAvailable(args[2] != null ? args[2] : "");
                  profileDataInJson = new JSONObject(profileData);
}

签名:ProfileData profileData = new ProfileData();

让我困惑的是,当我尝试遍历配置文件数据并尝试按名称“map”获取 json 对象时,我得到一个 nullPointerException


你不需要使用Gson将 hashmap 转换为 json 对象。 只需使用:

profileDataInJson = new JSONObject(map);

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSON 嵌套在 POJO 中 的相关文章

  • 从 Windows Batch (cmd.exe) 中的文件读取环境变量

    我正在尝试从批处理文件中读取变量 以便稍后在批处理脚本 Java 启动器 中使用 理想情况下 我希望所有平台 Unix Windows 上的设置文件都具有相同的格式 并且也是有效的 Java 属性文件 也就是说 它应该看起来像这样 sett
  • Spring MVC 和 Struts MVC 之间的区别 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 Spring MVC 和 Struts MVC 之间的主要区别是什么 Spring MVC 和 Struts 之间的主要区别是 Spr
  • java中的散列是如何工作的?

    我正在尝试弄清楚java中的哈希值 例如 如果我想在哈希图中存储一些数据 它是否会有某种带有哈希值的底层哈希表 或者 如果有人能够对哈希的工作原理给出一个很好且简单的解释 我将非常感激 HashMap 基本上在内部实现为数组Entry 如果
  • rmi类找不到异常

    我使用 java rmi 编写了一个简单的项目并导出到可执行 jar 文件 当我尝试运行它时 有时会出现异常 有时会起作用 当我指定 Djava rmi server codebase file serverClasses 时 它似乎没有正
  • 在 Selenium Grid 中注册 PhantomJS 节点时出错

    我有以下问题 我成功启动了 Selenium Grid hub java jar selenium server standalone 2 53 0 jar role hub 之后我尝试使用以下命令启动 PhantomJS 节点 phant
  • 为什么 JSON.stringify() 接受 Date 对象?

    至少在 Firefox 中 您可以对 Date 对象进行字符串化 gt gt gt JSON stringify now new Date now 2012 04 23T18 44 05 600Z 这是有效的 因为 在 Firefox 中
  • 为什么在大多数开源java项目中局部变量没有被声明为final?

    如果我查看 OpenJDK Hibernate 或 Apache 中的 java 源代码 我还没有看到任何声明为 Final 的局部变量 这表明一些最广泛使用的 java 软件库的开发人员 不要相信final关键字可以提高可读性 不相信它会
  • xclock 工作,X11 DISPLAY 设置但仍然 java.awt.HeadlessException:

    获取 java awt HeadlessException 似乎是一个非常常见的问题 并且 中已经讨论过 以下问题 没有 X11 DISPLAY 变量 这是什么意思 https stackoverflow com questions 662
  • 在字节数组上进行右位旋转/循环移位的最快方法是什么

    如果我有数组 01101111 11110000 00001111 111 240 15 移位 1 位的结果是 10110111 11111000 00000111 183 248 7 数组大小不固定 移位范围为 1 到 7 含 目前我有以
  • toArray 与预先确定大小的数组

    使用时ar toArray new String ar size 安卓工作室3 2 1警告预先确定大小的数组并建议空数组 有两种方式将集合转换为数组 使用 预先确定大小的数组 如 c toArray new String c size 或使
  • BODMAS系统的加法和减法

    我一直在构建一个简单的公式计算器 但一直被加法和减法困扰 正如您应该知道的 在计算方程时 您遵循优先级算术规则 即括号 顺序 幂函数 除法 乘法 加法和减法 问题是加法和减法具有相同的优先级 因此您可以从左到右阅读 到目前为止 这是我的代码
  • 如何使用 Java Streams API 将 Map 列表与列表值合并?

    我怎样才能减少Map
  • 谷歌的Json解析Gson库:JsonElement和JsonObject有什么区别?

    public abstract class JsonElement extends Object 表示 Json 元素的类 它可以是 JsonObject JsonArray JsonPrimitive 或 JsonNull public
  • Flot 0.8.2 折线图 - 颜色错误

    我正在使用 Flot 折线图并设置它们的颜色 我发现了一个奇怪的错误 在前 3 种颜色之后 绘图对所有其他线条使用最后一种颜色 这不是正确的行为 更有趣的是图例显示了正确的颜色 这是一个已知的错误 var dataSet label d1
  • 在服务器上创建 Zip 文件并使用 java 下载该 zip

    我从 mkyong 获得了以下代码 用于在本地压缩文件 但是 我的要求是在服务器上压缩文件并需要下载它 任何人都可以帮忙吗 代码写入zip文件 public void zipFiles File contentFile File navFi
  • 在 x64 系统上使用 skype-java-api

    我正在使用 skype java api 在 Java 中使用 Skype 我需要的唯一功能是点击即可拨打电话号码 它在 Windows XP x86 上运行良好 但我刚刚在 Windows 7 x64 上测试它 但失败了 错误是 线程 T
  • 枚举

    我试图拥有一组扩展通用接口的枚举 例如 interface Fooable void someCommonMethod enum E1 implements Fooable some enumuerations and a definiti
  • Java Media API:java media api 下载

    我在哪里可以找到javax media jar 文件 在sun站点它下载一个安装程序 有没有可用的java媒体jar 没有 javax media 具体是 jar 文件 该包位于 jmf jar 文件中 您需要运行安装程序并取出 jar 或
  • 在android中测量不规则多边形的面积

    我正在开发一个应用程序 在其中我在地图上绘制多边形 并且我使用的地图不是谷歌 它的Mapsforge开源离线地图库 我可以通过将地理点转换为像素点来轻松在地图上绘制多边形 但在这里我想发现是不规则的多边形 为此我做了很多尝试 但它让我失败了
  • 请解释为什么Java和C对此代码给出不同的答案

    public class Test public static void main String args int i 10 i i System out println value of i is i 输出是 10 当我在中执行类似的代码

随机推荐

  • 如何监控MySQL空间?

    我下载了使用 MySQL 的 Web 应用程序的 VM 映像 如何监控其空间消耗并知道何时必须添加额外空间 我有一些很大的疑问要分享 运行此命令以获取存储引擎的 MySQL 总数据和索引使用情况 SELECT IFNULL B engine
  • java正则表达式匹配

    能匹配下面2个字符串的正则表达式是什么 Hi
  • 如何处理 Rust 中的包装类型不变性?

    对包装类型的引用 例如 Rc
  • Cold observable 的 Scheduler.CurrentThread - 它将在哪个线程中运行?

    我是 RX 的新手 开始了解一些概念 我在网上找不到的概念 我在代码中使用计时器 Observable Timer TimeSpan FromSeconds 2 schedulerProvider CurrentThread where s
  • PHP 中子类的构造函数是否必须调用parent::__construct?

    是否必须从子类构造函数中调用父类的构造函数 为了解释 请考虑以下示例 class Parent function construct something is done here class Child extends Parent fun
  • 由于用户数据脚本,AWS 自动缩放启动未就绪的实例

    我有一个运行良好的自动缩放功能 带有一个启动配置 其中我定义了一个在新实例启动时执行的用户数据脚本 用户脚本更新基本代码并生成缓存 这需要几秒钟的时间 但是 一旦实例 创建 而不是 准备就绪 自动缩放就会将其添加到负载均衡器中 这是一个问题
  • 在现有 ASP.NET WebForms 站点中添加带有根路径的第二语言支持

    我继承了一个非常小的 ASP NET WebForms 项目 我的客户希望为其添加第二种语言 对于每个 somepage aspx 我想支持它的 第二语言路径 版本 例如 fr somepage aspx 我想使用正常的全球化 两种语言的
  • github.io 阻止了 ajax 请求

    我所有带有ajax请求的应用程序都返回错误 此请求已被阻止 内容必须通过 HTTPS 提供 例如 https zzharuk github io local weather widget https zzharuk github io lo
  • 在运行时合并两个程序集 - C#

    是否可以在运行时合并两个程序集 以便在迭代 ExportedTypes 时返回两个原始程序集中的所有类型 The why 我使用数据库迁移框架来更新我的数据库 它采用由特殊类组成的单个程序集 用于定义对数据库所做的修改 我有两个非常相似的数
  • 使用 git stash 时的 sh.exe.stackdump

    我是 Git 新手 对 stash 命令有疑问 当我编写 git stash git stash list git stash apply git drop 等命令时 我总是得到一个名为 sh exe stackdump 的文件 Excep
  • 带参数的 REST GET 动词

    我正在和我的队友一起阅读一些 REST 我们正在编写一个 RoR 应用程序 它将向世界其他地方公开它的一些功能 我在这个团队的任务是制作一个公开日记报告的资源 如果你打电话 http root com journalreports http
  • 如何确保curl 使用openssl,而不是nss?

    是否可以通过配置来保证parameter http curl haxx se docs manpage html that curl uses OpenSSL http www openssl org and not NSS http ww
  • 在 codeigniter 中启用 $_GET

    我一直在试图弄清楚如何在 CI 中启用 GET 看起来框架故意破坏了 GET 数组 并且启用它需要对核心类进行认真的修改 谁能说出这是为什么 以及如何克服它 请注意 我希望保持 URI 解析和路由的方式不变 只需让 GET 也可用即可 将以
  • Django - 使用 templatetags 渲染许多模板非常慢

    假设 我有一个带有照片库的页面 每个缩略图都有例如照片 国家 地区 作者等 我使用模板标签 加载指定的模板 渲染这些项目 小部件 由于 DRY 我在页面上的不同位置单独使用这些项目 小部件 所以会这样 而且速度非常慢 我使用 django
  • 如何使按钮可重复使用?

    我对编程世界还比较陌生 我对 HTML 和 CSS 有扎实的了解 最近又学习了 JavaScript 我正在开发一系列文本生成器作为学校项目 我的目标是能够在网站上单击一个按钮 并让计算机在每次单击该按钮时吐出随机文本 然而 虽然我对 HT
  • 在 httpContextAccessor.HttpContext 上返回 null

    我们重写 SaveChangesAsync 以自动更新 DateCreated CreatedBy LastDateModified 和 LastModifiedBy 对于CreatedBy和LastModifiedBt 我们需要Ident
  • 获取 Android Google Analytics 引荐来源网址标签

    我们计划使用 Google Analytics 来跟踪通过 Android Market 到我们的应用程序的广告点击推荐 根据谷歌文档 http code google com apis analytics docs mobile andr
  • 带有自定义标头的 Resttemplate GET 请求

    我需要发送带有标头的 GET 请求 Content Type application camiant msr v2 0 xml 我期望来自服务器的 XML 响应 我用 Postman 测试了请求和响应 一切都很好 但是当我尝试在春天这样做时
  • 密码哈希 PHP 7 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我目前正在学习 PHP 并且一直在论坛中查找有关如何最好地在 PHP 中对密码进行哈希处理的最新想法 任何人都可以建议目前最好使用的密码哈希方法
  • JSON 嵌套在 POJO 中

    我有一个 POJO 类 public class D private JSONObject profileData public JSONObject getProfileData return profileData public voi