2017-10-17 12 views
1

私は私が動的に「車」と「アコード」のような二つの文字列に付属しています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"} 
    } 
] 
} 

以下のようなJSONを持っています。私は "車"を検索し、その下の "項目値"を "一致"に置き換える必要があります。私はそれをマップに変換しようとしましたが、成功はありません。

私はこれをどのように達成することができますか?

+3

何語あなたがこの中をやっています – Gab

+2

JSONは単なる構造化されたデータです。あなたはそれを操作するためにどんなプログラミング言語を使用していますか? –

+0

soapuiでgroovyを使用してこれを実行しようとしています – Sireesha

答えて

0

これはGroovyで行う方法の1つです。

(私はそれを修正し、違法な文字が元の質問にあります)JSONはとても似ていると仮定すると:

def s = ''' 
{ 
"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"} 
    } 
    ] 
    } 
} 
''' 

その後、考えてみます。

import groovy.json.* 

def jsonSlurper = new JsonSlurper().parseText(s) 
def category = jsonSlurper.context.parameters.find { it.name == "cars" } 
category.value."item value" = "accord" 
println new JsonBuilder(jsonSlurper).toPrettyString() 
+0

ありがとうございました。それを解決していただきありがとうございます。私はそれをマップにしてループさせていました。 – Sireesha

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"} 
    } 
}) 
関連する問題