我有一个对象,需要解析下面的数据
var data= [{"obj1":"2122"},{"obj2":"123"}]
获取javascript中的键和值。我急于使用:
var obj = JSON.parse(data);
for(var prop in data) {
if(data.hasOwnProperty(prop))
console.log(prop);
}
在控制台中获取的值是
Object {obj1: "2122"}
Object {obj2: "123"}
但我需要单独访问值而不是对象。如何从该对象中检索它?
答案 0 :(得分:3)
JSON.parse用于将JSONString解析为Javascript Object。
您不能直接在JavaScript对象上使用它......
无论如何,你的对象是一个数组,所以你可以这样做:
var arr = JSON.parse(data);
arr.forEach(function(elementObject){
var keys = Object.keys(elementObject);
keys.forEach(function(key){
console.log(key + ":"+elementObject[key]);
})
});
干杯
答案 1 :(得分:1)
在这里,您将获得数组中的值"值"。
var data= [{"obj1":"2122"},{"obj2":"123"}]
data = JSON.stringify(data);
var values = [];
JSON.parse(data, function (key, value) {
if (typeof(value) != "object") {
values.push({[key]:value});
// values.push(value); //if you need a value array
}
});

答案 2 :(得分:0)
使用
迭代它们以获得每个密钥的Array#map
并提取keys
中对象的callback
。使用value
Array#forEach
var data = [{
"obj1": "2122"
}, {
"obj2": "123"
}];
var op = data.map(function(item) {
var keys = Object.keys(item);
var arr = [];
keys.forEach(function(key) {
arr.push(item[key]);
});
return arr;
});
console.log(op);

<script src="http://gh-canon.github.io/stack-snippet-console/console.min.js"></script>
&#13;
答案 3 :(得分:0)
尝试使用此代码使用$.each
函数来解析对象..
var data= [{"obj1":"2122"},{"obj2":"123"}]
$.each(data, function(key, val) {
$.each(val, function(k, v) {
console.log('key ='+k);
console.log('value ='+v);
alert('key = '+k+', value = '+v);
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 4 :(得分:0)
试试这个..
var obj = JSON.parse('[{"obj1":2122},{"obj2":123}]');
obj.forEach(function(ElementObject){
var keys=Object.keys(ElementObject);
console.log(keys[0],ElementObject[Object.keys(ElementObject)]);
}
);
答案 5 :(得分:-1)
首先:
var data = [{"obj1":"2122"},{"obj2":"123"}]
此行将创建一个数组。不需要:
var obj = JSON.parse(data);
如果您想通过键/值访问,则需要重新构建数据。
var data = [{key:"obj1",value:"2122"},{key:"obj2", value:"123"}];
for( var index in data)
{
var item = data[index];
console.log(item.key);
console.log(item.value);
}
或者你可以映射:
var keys = [{
"obj1": "2122"
}, {
"obj2": "123"
}];
var op = data.map(function(item) {
var keys = Object.keys(item);
var arr = [];
keys.forEach(function(key) {
console.log(key);
arr.push(key);
});
return arr;
});
var i=0;
for(var i=0;i<op.length;i++)
{
console.log(i);
var pair=data[i];
console.log(pair);
var key=op[i][0];
console.log(key);
var value=pair[key];
console.log(value);
}