var my_JSON_object = {"Attributes":[{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"}]}
var my_new_JSON_object = { 'Attributes' : {} };
my_JSON_object.Attributes.forEach( function ( value, index ) {
my_new_JSON_object.Attributes[ value.Name ] = value.Value;
} );
How do you convert an array of {"name":"myName","value":"myValue"} objects into an object of "myName":"myValue" pairs in JavaScript?
-
24-06-2022 - |
문제
I'm new to JavaScript. I'm sure this would be easy for the experienced person.
The SimpleDB getAttributes function of Amazon AWS SDK for Node.JS returns an array of data like this:
my_JSON_object = {"Attributes":[{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"},{"Name":"myName","Value":"myValue"}]}
I want to convert it into a simple object like this:
my_JSON_object = {"Attributes":{"myName":"myValue","myName":"myValue",...}}
So that I can use dot-syntax to access things, such as: Attributes.myName etc.
How do I do such a conversion?
해결책
다른 팁
var json = {"Attributes":[
{"Name":"myName","Value":"myValue"},
{"Name":"myName","Value":"myValue"},
{"Name":"myName","Value":"myValue"},
{"Name":"myName","Value":"myValue"},
{"Name":"myName","Value":"myValue"},
{"Name":"myName","Value":"myValue"},
{"Name":"myName","Value":"myValue"},
{"Name":"myName","Value":"myValue"},
{"Name":"myName","Value":"myValue"}
]}
var attrs = json.Attributes.slice(0);
json.Attributes = {};
for(var i = 0, len = attrs.length; i < len; i++) {
var attr = json.Attributes[i],
key = attr.Name,
val = attr.Value;
json.Attributes[key] = val;
}
UnderscoreJS is an excellent lib for doing such things. It will make your code cleaner and easier to maintain.
var result = _.chain(my_JSON_object.Attributes)
.map(function(item){return [item.Name, item.Value]})
.object().value();
This might be a little overwhelming if you are new to the language but trust me in the long run it's going to be mighty helpful.
제휴하지 않습니다 StackOverflow