how to change json key:value
<script>
var json = [{ "id": "5001", "type": "None" },
{ "id": "5002", "type": "Glazed" },
{ "id": "5005", "type": "Sugar" },
{ "id": "5003", "type": "Chocolate" },
{ "id": "5004", "type": "Maple" },
{ "id": "5009", "type": "Juice" }];
/**
* The function searches over the array by certain field value,
* and replaces occurences with the parameter provided.
*
* @param string field Name of the object field to compare
* @param string oldvalue Value to compare against
* @param string newvalue Value to replace mathes with
*/
function replaceByValue( field, oldvalue, newvalue ) {
for( var k = 0; k < json.length; ++k ) {
if( oldvalue == json[k][field] ) {
json[k][field] = newvalue ;
}
}
return json;
}
/**
* Let's test
*/
console.log(json);
replaceByValue('id','5001','5010')
console.log(json);
replaceByValue('type','Chocolate','only water')
console.log(json);
</script>
Take a look at Pinch, a (multi) data replacement tool for JavaScript objects/JSON. Here is a brief example how pinch.js could be used in your case:
var data = [
{
id: 5001,
type: 'None'
},
{
id: 5002,
type: 'Glazed'
},
{
id: 5005,
type: 'Sugar'
},
{
id: 5003,
type: 'Chocolate'
},
{
id: 5004,
type: 'Maple'
},
{
id: 5009,
type: 'Juice'
}
];
pinch(data, '/id/', function(path, key, value) {
return (value === 5001) ? 5010 : value;
});