これは以前に尋ねられたに違いないと確信していますが、SOの例が見つかりません。次のようなものとして人生を始めるJSON文字列があります。
{"model":"14","imgsize":"890","selection":{"SC":"BC","PC":"AC"},"changed":{"PC":"AC"}}
「選択」がユーザーがクリックしたすべての入力を記録し、「変更」がユーザーが最後にクリックしたものになるように、ユーザー入力で文字列を変更する必要があります。
したがって、テキストエリアからJSON文字列を読み取り、ユーザーが選択したもの(ノードと値)に応じて変更し、デバッグのためにテキストエリアに書き戻す関数があります。
function changeJSON(node, value) {
json = JSON.parse($('#json').val());
json.selection[node] = value;
delete json.changed;
json.changed = {node:value};
$('#json').val(JSON.stringify(json));
}
「選択」はうまく機能しますが、リテラル変数名に「変更」された更新を渡します(この場合はノード)つまり、関数を changeJSON("BC","HC") で呼び出すと、JSON 文字列は次のようになります。
{"model":"14","imgsize":"890","selection":{"SC":"BC","PC":"AC","BC":"HC"},"changed":{"node":"HC"}}
javascript が何をしようとしているのかは理解していますが、変更された要素を自分の変数に含まれるものにしたいのです。
,"changed":{"BC","HC"}
そしてそうではない
,"changed":{"node","HC"}
私が間違っていることを誰かに教えてもらいたいです!?
編集
解決済み - Quentin の説明と必要なコード変更に対する私の回答については、以下を参照してください - 他の人に役立つことを願っています。