如何动态更新JSON中的键值?

时间:2017-10-17 02:01:24

标签: json groovy

我有一个类似下面的JSON

{
"context":{
    "parameters":[
    {
        "name":"stub",``
        "value": {"item value":"abcdefg"}
    },  
    {
        "name":"category",
        "value":{"item value":"cars"}
    },
    {
        "name":"year",
        "value":{"item value":"2012"}
    },
    {
        "name":"make",
        "value":{"item value":"toyota"}
    },
    {   
        "name":"cars",
        "value":{"item value":"corolla"}
    }
]
}

我提供了两个动态的字符串,如" cars"并且"符合"。我需要搜索"汽车"然后替换"项值"在它下面"符合"。我试图将其转换为地图,但没有成功。

关于如何实现这一目标的任何建议?

2 个答案:

答案 0 :(得分:0)

你可以用javascript做到这一点。如果您使用的是JSON格式,则可以将该数据解析为对象。

const data = JSON.parse("your json data")

data.context.parameters.map(param => {
  if ( param.name !== "cars") {
   return param
  }
  return  {
    "name": "cars",
    value: {"accord": "corolla"}
  }
})

答案 1 :(得分:0)

这是在Groovy中执行此操作的一种方法。

假设JSON是这样的(我已经更正了;原始问题中存在非法字符):

public function getInfo($parameter){
     return $this->_result->results()[0]->{$parameter};
}

然后考虑:

def is_unique(string):
    import re
    patt = re.compile(r"^.*?(.).*?(\1).*$")
    return not re.search(patt, string)