groovy - 使用 groovy 在 map 下添加新的键值对
问题描述
{
"map": {
"key1": [3,12,13,11],
"key2": [21,23],
"key3": [31,32,33]
}}
我有这个 JSON。类似于 key1 或 key2 我想使用 groovy 向这个 json 添加新的密钥对。我正在使用 JsonSlurper()。
def mJson = new File(MAPPINGJSON).text;
def mJsonObject = parser.parseText(mJson);
def list= mJsonObject.map;
def keyFound= false;
for (item in list)
{
if (item.key == templateKey)
{
def values = item.value;
values.add(<some value>);
item.value= values;
keyFound = true;
break;
}
keyFound = false;
}
if(!keyFound)
{
println "Key not found";
// How to add new key pair?
}
解决方案
list[templateKey] = [<some value>]
by daggett 是一种方法,但您也可以使用单衬里来解决问题。
def list= mJsonObject.map;
list.computeIfAbsent(templateKey, { [] }).add(templateValue)
它使用一个函数来提供地图的默认值。
推荐阅读
- java - JAR 在本地 ubuntu:16.04 中运行并正常工作,但无法在 docker 中运行相同的环境
- ajax - 如何使用 json ajax 发送带有 id 的表单
- shell - 如何使用 graphicsmagick 运行/调用 shell 脚本函数
- c# - Caesar Cipher C# - 如何使用大写和小写字母
- javascript - 如何创建 2 个客户端
- java - Spring 5 控制器返回要在浏览器中加载的 html 字符串
- javascript - 如何通过同一列表中的另一个属性过滤一个属性 - 反应 js
- github - 如何移除或隐藏 Zenhub 侧边栏
- c# - 运行 t4 工具后更新项目文件
- php - 禁止发布 tumblr api