从各种 JSON 路径创建 JSON 对象

2024-01-27

我们需要从提供的各种 JSONPaths 创建 JSON 对象。例如,下面是要创建的新 JSON 对象中的两个路径以及该路径的值。

$.student.firstName = "Abc"
$.student.subject['physics'].mark=100

是否有任何java开源库可以帮助仅从该路径创建结果对象?

{
 "student":{
 "firstName":"Abc",
 "physics":{
   "mark":100
  }
 }
}

我们探索了某些库,例如JSONPath https://github.com/json-path/JsonPath。它可以选择解析 JSON 文件,但不能选择从路径递归创建 JSON 文件。


总部设在这把叉子 https://github.com/KumarJayanti/JsonPath from JsonPath https://github.com/json-path/JsonPath添加从 json 路径创建新 json 节点的功能,您可以执行以下操作:

//    columnsMap = key: jsonPath node, value: value to be added to node

String json = "{ }";
for (Entry<String, String> entry : columnsMap.entrySet()) {
  JsonPath compiledPath = JsonPath.compile(entry.getKey());
  Object parsedJsonPath =
      compiledPath.set(configuration.jsonProvider().parse(json), entry.getValue(), configuration);
  json = JsonPath.parse(parsedJsonPath).jsonString();
}
return json;

输入(列映射):

{vendor_account_ids=1234567,4567123,789785,
 charges[0].vendor_charge_id=CHARGE-01,
 charges[1].vendor_charge_id=CHARGE-02,
 charges[0].type=LOAN_DEDUCTION,
 charges[0].conditions.alternative_delivery_date=false,
 charges[0].conditions.depends_on_vendor_charge_ids[0]=ID01,
 charges[0].conditions.depends_on_vendor_charge_ids[1]=ID02,
 charges[0].conditions.order_total.maximum_value=123.45,
 charges[0].conditions.payment_method=BANK_SLIP,
 charges[0].conditions.scaled_from=ORDER_TOTAL,
 charges[0].conditions.product_attributes.is_alcoholic=false,
 charges[0].conditions.payment_terms[0]=1,
 charges[0].conditions.payment_terms[1]=30,
 charges[0].output.scope=LINE_ITEM,
 charges[0].output.apply_to=DISCOUNT_AMOUNT,
 charges[0].output.type=PERCENT,
 charges[0].output.ratio=FIXED,
 charges[0].output.ranges[0].from=1,
 charges[0].output.ranges[0].value=10,
 charges[0].output.vendor_item_ids[0]=SKU001,
 charges[0].output.vendor_item_ids[1]=SKU002
}

输出(返回json):

{
    "vendor_account_ids": "1234567,4567123,789785",
    "charges": [
        {
            "vendor_charge_id": "CHARGE-01",
            "type": "LOAN_DEDUCTION",
            "conditions": {
                "alternative_delivery_date": "false",
                "depends_on_vendor_charge_ids": [
                    "ID01",
                    "ID02"
                ],
                "order_total": {
                    "maximum_value": "123.45"
                },
                "payment_method": "BANK_SLIP",
                "scaled_from": "ORDER_TOTAL",
                "product_attributes": {
                    "is_alcoholic": "false"
                },
                "payment_terms": [
                    "1",
                    "30"
                ]
            },
            "output": {
                "scope": "LINE_ITEM",
                "apply_to": "DISCOUNT_AMOUNT",
                "type": "PERCENT",
                "ratio": "FIXED",
                "ranges": [
                    {
                        "from": "1",
                        "value": "10"
                    }
                ],
                "vendor_item_ids": [
                    "SKU001",
                    "SKU002"
                ]
            }
        },
        {
            "vendor_charge_id": "CHARGE-02"
        }
    ]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从各种 JSON 路径创建 JSON 对象 的相关文章

  • “_加载小部件时出现问题”消息

    加载小部件时 如果找不到资源或其他内容 则会显示 加载小部件时出现问题 就这样 惊人的 此消息保留在主屏幕上 甚至没有说明加载时遇到问题的小部件 我通过反复试验弄清楚了这一点 但我想知道发生这种情况时是否有任何地方可以找到错误消息 Andr
  • 如果在睡眠线程上调用interrupt()会发生什么?

    我有一个线程 然后run I call sleep 如果我中断这个线程会发生什么 MyThread extends Thread public void run try sleep 1000000 catch InterruptedExce
  • Grails 2.3.0 自动重新加载不起作用

    我最近将我们的项目升级到 grails 2 3 0 一切工作正常 除了每当我更改代码时自动重新加载都无法工作的问题 这包括所有项目工件 控制器 域 服务 gsps css 和 javascript 文件 我的旧版本 grails 可以正常工
  • Spring安全“记住我”cookie在第一个请求中不可用

    我无法在登录请求后检索 Spring 记住我 cookie 但它在对受保护页面的下一个请求中工作正常 谁能告诉我怎样才能立即得到它 我在登录请求中设置了记住我的 cookie 但在 Spring 重定向回原始 受保护的 url 后无法检索它
  • 来自数据库的 jfreechart 散点图

    如何使用java中的jfreechart绘制mysql数据库表中数据的散点图 我使用过 Swing 库 任何链接都会有帮助 我搜索了谷歌但找不到理解的解决方案 如果您有代码 请提供给我 实际上我确实做了条形图并使用 jfreechart 绘
  • 如何将 android.net.Uri 转换为 java.net.URL? [复制]

    这个问题在这里已经有答案了 有没有办法从Uri to URL 我正在使用的库需要这个 它only接受一个URL但我需要在我的设备上使用图像 如果该方案的Uri is http or https new URL uri toString 应该
  • 如何获取 WebElement 的父级[重复]

    这个问题在这里已经有答案了 我试过了 private WebElement getParent final WebElement webElement return webElement findElement By xpath 但我得到
  • Java 服务器-客户端 readLine() 方法

    我有一个客户端类和一个服务器类 如果客户端向服务器发送消息 服务器会将响应发送回客户端 然后客户端将打印它收到的所有消息 例如 如果客户端向服务器发送 A 则服务器将向客户端发送响应 1111 所以我在客户端类中使用 readLine 从服
  • 将表值参数与 SQL Server JDBC 结合使用

    任何人都可以提供一些有关如何将表值参数 TVP 与 SQL Server JDBC 一起使用的指导吗 我使用的是微软提供的6 0版本的SQL Server驱动程序 我已经查看了官方文档 https msdn microsoft com en
  • Java 数组的最大维数

    出于好奇 在 Java 中数组可以有多少维 爪哇language不限制维数 但是JavaVM规范将维度数限制为 255 例如 以下代码将无法编译 class Main public static void main String args
  • Java - 返回值是否会中断循环?

    我正在编写一些基本上遵循以下格式的代码 public static boolean isIncluded E element Node
  • Cloudfoundry:如何组合两个运行时

    cloundfoundry 有没有办法结合两个运行时环境 我正在将 NodeJS 应用程序部署到 IBM Bluemix 现在 我还希望能够执行独立的 jar 文件 但应用程序失败 APP 0 bin sh 1 java not found
  • Spring Security OAuth2简单配置

    我有一个简单的项目 需要以下简单的配置 我有一个 密码 grant type 这意味着我可以提交用户名 密码 用户在登录表单中输入 并在成功时获得 access token 有了该 access token 我就可以请求 API 并获取用户
  • JSON 数组到 C# 列表

    如何将这个简单的 JSON 字符串反序列化为 C 中的列表 on4ThnU7 n71YZYVKD CVfSpM2W 10kQotV 这样 List
  • 将图像添加到自定义 AlertDialog

    我制作了一个 AlertDialog 让用户可以从我显示的 4 个选项中选择一个 前 3 个让他们在单击号码时直接拨打号码 第 4 个显示不同的视图 现在看起来是这样的 由于第四个选项的目的是不同的任务 我想让它看起来不同 因为用户可能会感
  • Android - 9 补丁

    我正在尝试使用 9 块图片创建一个新的微调器背景 我尝试了很多方法来获得完美的图像 但都失败了 s Here is my 9 patch 当我用Draw 9 patch模拟时 内容看起来不错 但是带有箭头的部分没有显示 或者当它显示时 这部
  • Hibernate 和可序列化实体

    有谁知道是否有一个框架能够从实体类中剥离 Hibernate 集合以使它们可序列化 我查看了 BeanLib 但它似乎只进行实体的深层复制 而不允许我为实体类中的集合类型指定实现映射 BeanLib 目前不适用于 Hibernate 3 5
  • Java &= 运算符应用 & 或 && 吗?

    Assuming boolean a false 我想知道是否这样做 a b 相当于 a a b logical AND a is false hence b is not evaluated 或者另一方面 这意味着 a a b Bitwi
  • 嵌入式 Jetty - 以编程方式添加基于表单的身份验证

    有没有一种方法可以按如下方式以编程方式添加基于表单的身份验证 我用的是我自己的LdapLoginModule 最初我使用基本身份验证并且工作正常 但现在我想在登录页面上进行更多控制 例如显示徽标等 有没有好的样品 我正在使用嵌入式 jett
  • 启动Java项目时发生类冲突:ClassMetadataReadingVisitor将接口org.springframework.asm.ClassVisitor作为超类

    我正在使用最新的Spring框架版本 3 2 2 RELEASE 开发一个Java Web项目 但是现在项目启动时遇到了问题 详细错误是 java lang IncompleteClassChangeError 类 org springfr

随机推荐

  • 在 Kubernetes 上使用 Spring Boot Admin 监控副本

    我在 Kubernetes 上设置了一个 Spring Boot 管理客户端 并扩展到 3 个副本 但是当我尝试检查实例时 管理服务器只显示一个 为了让 SBA Spring Boot 管理员 了解您的服务的三个实例是不同的 您需要确保每个
  • 为什么 C# 中的构造函数不被继承?

    我猜想 C 继承中有一些非常基本的东西我不明白 有人请启发我吗 有时 在子类化时 您希望限制创建类实例所需的条件 让我举一个例子 如果类确实继承了其超类构造函数 则所有类都将具有来自的无参数构造函数Object 显然这是不正确的
  • R下载文件重定向

    您好 我正在参加在线课程并尝试下载rda教授提供的数据集 我尝试运行与课程中提供的完全相同的命令 download file https dl dropbox com u 7710864 courseraPublic samsungData
  • 如何有效地搜索这个层次结构?

    我有一个如下所示的数据结构 public class Node public string Code get set public string Description get set public List
  • 错误“无法下载,$GOPATH 未设置。”

    Setup 看看我的配置 echo GOPATH ls r GOPATH home cyrus go src pkg bin echo GOROOT ls GOROOT usr local go api AUTHORS bin CONTRI
  • 使用 PHP 进行错误级别分析

    我不是编码员 但我确实理解逻辑 通常我能够使用 PHP 进行简单的编码 我正在寻求实施错误级别分析使用 PHP 你可以看到一个例子这个链接 http fotoforensics com 是否可以使用 ImageMagick 或 GD 来实现
  • PHP mail() 附件问题

    有人能帮我弄清楚为什么这总是返回错误吗 to email protected cdn cgi l email protection from Website lt email protected cdn cgi l email protec
  • Java / Kotlin / Spring Boot。如何在异常发生时自动获取参数值?

    考虑到我们正在使用Kotlin Spring Boot 注释等相关库 如果我们的代码抛出异常 我们如何在异常发生时自动检索方法参数值 我们可以使用 AOP Spring 拦截器或其他技术来做到这一点吗 我们希望用它来丰富我们的错误消息 以便
  • 如何处理 Pandas 中的SettingWithCopyWarning

    背景 我刚刚将 Pandas 从 0 11 升级到 0 13 0rc1 现在 该应用程序弹出了许多新的警告 其中之一是这样的 E FinReporter FM EXT py 449 SettingWithCopyWarning A valu
  • Android OAuth 改造访问令牌请求

    谁能告诉我将以下代码转换为改造的确切格式 curl X POST d grant type password username admin password admin scope read write u clientId clientS
  • 为第 3 方插件设置模板优先级

    自 Shopware 6 4 13 0 以来有一个新功能 您可以在其中设置getTemplatePriority 在捆绑包类中影响模板加载顺序 目前 我们有一个有序列表 其中列出了我们希望如何加载插件并设置installed at日期 它包
  • TensorFlow 将图保存到文件中/从文件中加载图

    从我到目前为止收集到的信息来看 有几种不同的方法可以将 TensorFlow 图转储到文件中 然后将其加载到另一个程序中 但我还没有找到关于它们如何工作的明确示例 信息 我已经知道的是 使用以下命令将模型的变量保存到检查点文件 ckpt 中
  • response.body.getReader 不是函数

    我正在使用 fetch 调用 Web api 我想将响应作为流读取 但是当我在 response body 上调用 getReader 时 出现错误 TypeError response body getReader 不是函数 const
  • 使用 systemjs 在 typescript 中导入位于应用程序文件夹外部的共享服务

    我有两个 Angular 2 应用程序 结构如下 app 应用程序1 应用程序2 共享 在我的 Angular 2 组件 用打字稿编写 中 我导入了几个模块 位于同一文件夹中 没有任何问题 从 test1 service 导入 TestSe
  • 为什么在检查 $pristine 或 $setDirty() 时在 ng-include 中形成 undefined ?

    当我单击 检查 按钮时 以下代码抛出错误 TypeError 无法读取未定义的属性 pristine app controller MainCtrl function scope other stuff controller Ctrl2 f
  • 如何升级Python venv版本[重复]

    这个问题在这里已经有答案了 我安装了Python3 10 并且在我一直在从事的项目中有一个venv 我不明白如何轻松升级 我的背景主要是 Node 和 JS 这肯定更简单 更容易更改版本 我只是想创建一个新的 venv 但这不起作用 mpa
  • 如何获取 MySQL 中特定行的偏移量?

    我正在尝试创建一个图像数据库 该数据库不保存一致的 ID 记录 例如 它可能是 1 2 6 7 12 但正如您所看到的 只有 5 行 在表中我有 fileid 和 filename 我创建了一个 PHP 脚本 当我给出文件 ID 时 它会显
  • java.lang.ClassCastException:org.hibernate.hql.ast.tree.SqlNode 无法转换为 org.hibernate.hql.ast.tree.FromReferenceNode

    我正在尝试用以下内容更新记录HQL查询 但我得到了CastException 如果有人能帮助我 我将非常感激 我已经在互联网上检查了一段时间 但找不到任何有关此的信息 如果您有关于此例外的更多信息 请告诉我 返回的完整错误消息 Except
  • MySQL LIKE + php sprintf

    test sprintf SELECT FROM table WHERE text LIKE s mysql real escape string test echo test output SELECT FROM table WHERE
  • 从各种 JSON 路径创建 JSON 对象

    我们需要从提供的各种 JSONPaths 创建 JSON 对象 例如 下面是要创建的新 JSON 对象中的两个路径以及该路径的值 student firstName Abc student subject physics mark 100