如何从 Java 中的 JSON 字符串中删除元素?

2023-12-07

我有一个 json 作为字符串,我需要使用 java 代码从中删除一个元素。感谢你的帮助。

Example.

尝试了数组和其他东西,但没有运气。

输入:需要删除图像

{"widget": {
    "debug": "on",
    "window": {
        "title": "Sample Konfabulator Widget",
        "name": "main_window",
        "width": 500,
        "height": 500
    },
    "image": { 
        "src": "Images/Sun.png",
        "name": "sun1",
        "hOffset": 250,
        "vOffset": 250,
        "alignment": "center"
    },
    "text": {
        "data": "Click Here",
        "size": 36,
        "style": "bold",
        "name": "text1",
        "hOffset": 250,
        "vOffset": 100,
        "alignment": "center",
        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
    }
}}   

Output:

{"widget": {
    "debug": "on",
    "window": {
        "title": "Sample Konfabulator Widget",
        "name": "main_window",
        "width": 500,
        "height": 500
    },
    "text": {
        "data": "Click Here",
        "size": 36,
        "style": "bold",
        "name": "text1",
        "hOffset": 250,
        "vOffset": 100,
        "alignment": "center",
        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
    }
}}

下面是使用不同流行库来实现您想要的示例代码,如下所示:

Jackson

ObjectMapper mapper = new ObjectMapper();
JsonNode node = mapper.readValue(jsonStr, JsonNode.class);
((ObjectNode) node.get("widget")).remove("image");
System.out.println(node.toString());

Gson

Gson gson = new Gson();
JsonElement jsonObj= gson.fromJson(jsonStr, JsonElement.class);
jsonObj.getAsJsonObject().get("widget").getAsJsonObject().remove("image");
System.out.println(jsonObj.toString());

Jettison

JSONObject jsonObj = new JSONObject(jsonStr);
jsonObj.getJSONObject("widget").remove("image");
System.out.println(jsonObj.toString());
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从 Java 中的 JSON 字符串中删除元素? 的相关文章

随机推荐

  • 如何使用常见的 try-catch 来处理 Javascript 中的每个给定函数?

    这些是我的一些函数 我需要编写一个通用函数来查看函数运行是否没有错误 我尝试使用 try catch 方法 但我只能对每个函数单独执行此操作 function fisrt console log First function second
  • Android扩展文件

    我正在尝试制作一个包含 80mo PNG 的应用程序 这是一个离线应用程序 所以我必须将它们存储在手机上 该应用程序在本地运行良好 但我无法上传 gt 50mo 的 apk 所以我试图实现一个包含我所有 PNG 的扩展文件 所以我在 Lin
  • 解析 EMV 9F10 令牌

    我收到以下信息IAD处理后GPO command 那么我的问题是 怎么样9F10 EMV token建造 这是令牌 06010A03A020000F04000000000000000000006232E4F9 我只需要发送CVR部分到采集开
  • Python Argparse“需要以下参数”错误

    我正在尝试使用 github 存储库 但项目的 argparse 部分存在一些问题 回购协议开始如下 import markdown sys csv getpass smtplib argparse from email mime text
  • asp.net mvc 和 linq toEntity:如何包含 IEnumerable 中的文本值

    我有一个对一个字段有约束的表 它可以是 1 2 或 3 正确的解决方案可能是为此创建一个查找表 但现在我想知道是否可以在不使用查找表 我创建了一个返回值的 IEnumerable 类 我正在使用 LINQ to Entities 并且希望能
  • .NET 5 支持旧的 csproj 格式吗?

    从 NET Framework 迁移到 NET 5 时最大的障碍之一是必须将所有 csproj 转换为新的 SDK 样式格式 没有工具可以自动执行此操作 必须手动完成 我想知道这个转换是否有必要 有没有办法在保留旧的 cs 项目的同时切换到
  • 核心 4D 图像 tif 存储为 hdf5 python

    我有 27GB 的 2D tiff 文件 代表 3D 图像电影的切片 我希望能够像简单的 numpy4d 数组一样对这些数据进行切片 看起来 dask array 是一个很好的工具 可以在数组作为 hdf5 文件存储在内存中后干净地操作数组
  • 为什么在字符串数组上使用 Array.map(parseInt) 会产生不同的结果[重复]

    这个问题在这里已经有答案了 我正在观看一个关于销毁所有软件标题的演讲JavaScript 的诞生与消亡 在演讲中 Gary Bernhardt 指出了 JavaScript 的一个奇怪的功能 即给出一个整数字符串数组 javascript
  • 在R中是否可以得到F#的函数应用“|>”运算符? [复制]

    这个问题在这里已经有答案了 可能的重复 R 流水线函数 我发现 R 语法与 F 相比非常笨拙 在 R 中 而不是 plot exp cumsum returns 我很想做 returns gt cumsum gt exp gt plot 有
  • Bootstrap 4 - 以自定义方式显示卡片

    我正在尝试创建一个基于 Bootstrap 4 的正确语义 HTML CSS 它将以某种方式呈现卡片元素 而无需添加太多自定义批量 到目前为止我所拥有的是这样的 section class section d flex align item
  • 可扩展的 WinForms 文本框

    我在 Windows 窗体应用程序中创建了一个文本框 该文本框以用于在单行中输入文本的高度开始 但我希望如果用户输入包含在控件内的文本 文本框会自动增加其高度 目前 对于此文本框 我将属性 multiline 和 wordwrap 设置为
  • 为什么编译器需要一个特征的实现来调用默认的自由函数?

    当调用一个不需要的特征的默认实现时self 为什么需要注释一个实现类型呢 A 最小的 可重现的例子在下面 操场 mod builder pub trait Builder Sized fn new gt Simple Simple pub
  • 谷歌 protobuf 和 A​​ndroid NDK

    如何构建Google protobuf c 版本 https github com google protobuf releases latest 与 Android 目标 我在没有 ndk build 的情况下编译了 protobuf 这
  • 在jsp中显示数据

    我是jsp新手 面临一个问题 我需要创建 jsp 页面 显示来自 servlet 的数据 Servlet 代码 protected void doGet HttpServletRequest request HttpServletRespo
  • 尝试到达应用程序引擎端点时出现 SSLHandshakeException

    我正在尝试从 Android 客户端连接到我的端点方法之一到本地运行的应用程序引擎后端 问题是我收到 SSLHandshakeException 我的 API 不受 OAuth 保护 我试图达到的方法如下所示 ApiMethod name
  • 从被调用方法捕获异常

    关于程序流程 这个问题已经困扰我一段时间了 我想知道是否可以从方法中捕获错误 以阻止它执行通常遵循它的方法 如下例所示 我无法开始工作 public class MyClass public static void main String
  • 忽略 py2exe 中的library.zip

    我需要一个可执行文件 exe 它从文件中获取一些参数 用户可以根据他 她的需要配置这些参数 由于我在 python 中创建了脚本 因此我使用 py2exe 来创建该可执行文件 虽然我可以放置一个名为的可配置文件设置 dat作为数据文件并用它
  • 如何将 jackson objectmapper dateformat 配置添加到 spring mvc 配置中?

    我有一个关于 Jackson 2 1 的问题 我的 pojo 有一些日期属性 我想将其转换为字符串 我将其解决在 spring servlet xml 中 但它没有用 我不喜欢使用 JsonSerialize using JsonDateS
  • Android:从特定电话号码接收短信

    我的应用程序是否可以从特定电话号码接收短信 而不让它触发系统通知 但让所有其他消息传递到默认短信应用程序进行正常处理 如果是这样 系统如何知道哪个进程首先进入队列来选择接收哪些消息 我没有尝试这个 但理论上它应该有效 在 Android 中
  • 如何从 Java 中的 JSON 字符串中删除元素?

    我有一个 json 作为字符串 我需要使用 java 代码从中删除一个元素 感谢你的帮助 Example 尝试了数组和其他东西 但没有运气 输入 需要删除图像 widget debug on window title Sample Konf