Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中解析json对象以获取键和值_Javascript_Json_Object - Fatal编程技术网

在javascript中解析json对象以获取键和值

在javascript中解析json对象以获取键和值,javascript,json,object,Javascript,Json,Object,我有一个对象,需要解析下面的数据 var data= [{"obj1":"2122"},{"obj2":"123"}] 获取javascript中的键和值。我希望使用: var obj = JSON.parse(data); for(var prop in data) { if(data.hasOwnProperty(prop)) console.log(prop); } 在console中获得的值为 Object {obj1: "2122"} Object {obj2: "123"

我有一个对象,需要解析下面的数据

  var data= [{"obj1":"2122"},{"obj2":"123"}]
获取javascript中的键和值。我希望使用:

var obj = JSON.parse(data);
for(var prop in data) {
if(data.hasOwnProperty(prop))
  console.log(prop);
}
在console中获得的值为

Object {obj1: "2122"}
Object {obj2: "123"}

但我需要单独访问这些值,而不是作为对象。如何从该对象检索它?

JSON.parse用于将JSONString解析为Javascript对象

您不能直接在JavaScript对象上使用它

无论如何,您的对象是一个数组,因此您可以执行以下操作:

var arr = JSON.parse(data);
arr.forEach(function(elementObject){
    var keys = Object.keys(elementObject);
    keys.forEach(function(key){
      console.log(key + ":"+elementObject[key]);
    })
});
干杯

使用
数组#映射
并在
回调
中提取对象的
。使用
数组#forEach

var数据=[{
“obj1”:“2122”
}, {
“obj2”:“123”
}];
var op=data.map(函数(项){
变量键=对象键(项);
var-arr=[];
键。forEach(功能(键){
arr.push(项目[关键]);
});
返回arr;
});
控制台日志(op)
首先:

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);
}
var键=[{
“obj1”:“2122”
}, {
“obj2”:“123”
}];
var op=data.map(函数(项){
变量键=对象键(项);
var-arr=[];
键。forEach(功能(键){
控制台日志(键);
arr.push(按键);
});
返回arr;
});
var i=0;

对于(var i=0;i请使用
$尝试此代码。每个
函数都可以解析对象

var data=[{“obj1”:“2122”},{“obj2”:“123”}]
$。每个(数据、函数(键、值){
$。每个(val,函数(k,v){
log('key='+k);
console.log('value='+v);
警报('key='+k+',value='+v);
});
});

试试这个

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)]); 
}
);

在这里,您将获得数组“values”中的值

var data=[{“obj1”:“2122”},{“obj2”:“123”}]
data=JSON.stringify(数据);
var值=[];
parse(数据、函数(键、值){
if(类型(值)!=“对象”){
push({[key]:value});
//value.push(value);//如果需要值数组
}  

})
显示预期的输出!显示您想要的预期方式和输出?如果您想像按键搜索一样进行解析,可以在搜索对象之前使用loadash。尝试使用下划线函数,帖子声称有[JavaScript]object.JSON.parse接受JSON文本。一个有用的开始是省略不正确的JSON.parse用法-编辑帖子以删除不正确的信息。你确定数组中的对象应该有不同的键吗?如果这些值的类型相同,你应该使用相同的键名,这样会简单得多。“字符串到JSON”-不,它用于将JSON字符串(一个遵循JavaScript对象表示法的字符串)转换为JavaScript对象。JavaScript对象!=JSON@Rajeshwar不客气,所以请将问题标记为已解决,T J您是对的!编辑:更新以回答问题而不更改数据结构。