当前位置: 首页 > 知识库问答 >
问题:

时髦 - 添加新的嵌套键以映射 [复制]

仉宪
2023-03-14

我有 2 个 json 文件:

 Json A:
 {
  "a": {
    "b": true,
    "c": {
      "d": "Hello"
    }
  }
}

Json B:
    {
      "a": {
        "c": {
          "e": "Sir"
        }
      }
    }

我正在将两个 json 对象转换为 MAP:

MAP A: [a:[b:true, c: [d: hello]]
MAP B: [a:[c: [e: Sir]]

我需要将元素e从json B添加到Json A中的同一位置

预期结果是:

Merged MAP : [a:[b:true, c: [d: hello, e: Sir]]

我有需要添加为点路径字符串的密钥(a. c.e)

如何向现有地图添加点字符串路径?

谢谢

共有1个答案

别子实
2023-03-14

好的,假设您知道要添加什么以及路径“a. c.e”作为字符串:像这样的东西应该可以完成这项工作:

mapA = [a:[b:true, c: [d: 'hello']]]
mapB = [a:[c: [d: 'Sir']]]
path = 'a.c.e'
///////////////////////

allElems = (path.split("\\.") as List)
allButLast = allElems[0..-2] // [a, c]
last  = allElems[-1]         // e

mapToAddElemTo =
    allButLast        .stream()
                      .reduce(mapA, { currMap, pathElem -> currMap[pathElem] } )

mapToAddElemTo[last] = 'Sir'
println(mapA) // prints [a:[b:true, c:[d:hello, e:Sir]]]

 类似资料:
  • 我有一个dynamodb表,它的一个属性包含一个嵌套的映射,我想更新一个特定的库存项目,该项目通过一个过滤器表达式进行过滤,从而从该映射中生成一个项目。 如何编写一个更新表达式来更新位置到名称=欧宝的项目的“就位三”,标签包括“x1”(也可能是f3)?这应该只更新第一个列表元素位置属性。

  • 我用的是Protobuf 3。从文档来看,似乎无法定义嵌套贴图: 我正在尝试创建一种消息类型来表示期权链的定价信息(出价和要价)。对于那些不熟悉这些金融工具的人,基本上我有一套“到期日期(YYYYMMDD)”。在每个过期日期中,我都有一组“strikes(float number;如果需要,可以用字符串表示,我同意)”。在每次行使中,我有两个期权,一个“看跌”和一个“看涨”(这被称为期权的“右”)

  • 我尝试使用MapStruct编写映射器类,如下所示: 目前它显示了“未知属性”“customer.customerid”和“usertypes.usertype.userid”等错误。有人能帮我用MapStruct映射所有这些元素吗? 问题2:我们如何绘制跟踪图?1)customerId usertypes->user->userid 2)pdtPrice offers->OffersType->

  • 我用下面的方法尝试了嵌套映射。 我在声明“root_cause”时出错:[{“type”:“mapper_parsing_exception”,“reason”:“root映射定义有不支持的参数:[type:nested]。” 感谢您的帮助。

  • 如何更新JSONB以将新键添加到所有记录的嵌套数组(用于数组的所有项目)中。 我指的是表结构的链接: 给定的json是: 要将新元素添加到每个数组项中,请执行以下查询: 执行上述查询后输出: 但是上面只会在id=1的地方更新json。对于orders中的所有行,需要进行哪些更改才能更新与上述相同的JSON?

  • 我有一个带有对象的RealmObject类,它实际上是PrimaryKey作为这个对象中的字符串。但不允许将对象作为主键。 因为目前不可能更改服务器的响应结构,所以我尝试了不同的方法来解决这个问题。但到目前为止,没有一个奏效。我在Android Studio中使用“io.realm:realm-gradle-plugin:0.87.2”作为和“realm-android”插件。 谢谢beeende

  • 我想使用Orika library映射一个包含嵌套集合的字段。我在课堂上的领域定义如下: Pojo是一个简单的Pojo类。不幸的是,我有一个MappingException,它是由Orika内部逻辑中的NullPointerException引起的。 我做错事了吗?也许我需要使用自定义映射功能? 编辑: 下面是我的代码: } 公共类源{private final List } 公共类目的地{pri

  • 我的问题是,我得到每次我试图映射一个与。有没有一种方法来编辑这个实现,以某种方式处理重复的键?或者我应该用另一种方式去做?