This is in continuation to this question and probably an advancement ( not a duplicate ) to this question
Below is my JSON
{
"name": "Stub",
"request": {
"method": "GET",
"url": "/thing/1",
"queryParameters": {
"Accept": {
"equalTo": "xml"
}
}
},
"response": {
"status": 200
}
}
I would like to update the "equalTo" key to a value based on the select box
<select id="Filter" onchange="javascript:setFontText5(this.value);" name="Filter">
<option value=""></option>
<option value="equalTo">equalTo</option>
<option value="matches">matches</option>
<option value="contains">contains</option>
</select>
The Keys "Accept" and "EqualTo" that you see are dynamic so I cannot use something like this
obj.request.queryParameters.Accept.EqualTo[text]
I tried the below approach but it doesn't seem to work
function setFontText5(text) {
const str = document.getElementById("urls").value;
const obj = JSON.parse(str);
const oldKey = Object.keys(obj.request.queryParameters)[0];
const oldKey1 = Object.keys(obj.request.queryParameters[oldKey])[0];
if (text && oldKey1 !== text) {
obj.request.queryParameters[oldKey][oldKey1][text] = obj.request.queryParameters[oldKey][oldKey1];
delete obj.request.queryParameters[oldKey][oldKey1];
document.getElementById("urls").innerHTML = JSON.stringify(obj, undefined, 4);
}
}