Javascript 如何使用Java脚本打印JSON文件

Javascript 如何使用Java脚本打印JSON文件,javascript,json,Javascript,Json,我想得到所有的“业务单元id”并存储在一个变量中。为此,我需要获得所有“业务部门id”。所以我试着用下面的代码打印所有的id,但是我无法打印 var user_business_data =[ { "user_id":"5db3e3b1", "blog":{ "blog_id":"128c522e" }, "business_units":[ { "busines

我想得到所有的“业务单元id”并存储在一个变量中。为此,我需要获得所有“业务部门id”。所以我试着用下面的代码打印所有的id,但是我无法打印

var user_business_data =[  
   {  
      "user_id":"5db3e3b1",
      "blog":{  
         "blog_id":"128c522e"
      },
      "business_units":[  
         {  
            "business_unit_id":"000396c9",
            "viewing":101
         },
         {  
            "business_unit_id":"01821e44",
            "viewing":102
         },
         {  
            "business_unit_id":"02cbcad5",
            "viewing":103
         }
      ]
   }
]
if(未定义!==user\u business\u data.business\u units&&user\u business\u data.business\u units.length){

对于(var i=0;iuser_business_)数据是一个数组,而不是一个对象。如果要从数组中访问任何对象,必须指定所引用位置的索引。因此,在您的示例中,将其更改为以下内容:

if (undefined !== user_business_data.business_units && user_business_data.business_units.length) {
    for(var i=0;i<user_business_data.business_units.length;i++){
         var key = user_business_data.business_units[i];
         console.log("Key : "+key, "Values : "+user_business_data.business_units[key]);
    } 
} else {
    console.log("Undefined value");
}
if(未定义!==user\u business\u data[0]。业务单位和用户业务单位数据[0]。业务单位。长度){
对于(var i=0;i
var user\u business\u data=[{“user\u id”:“5db3e3b1”,“blog”:{“blog\u id”:“128c522e”},“business\u unit\u id”:“000396c9”,“view”:101},{“business\u unit\u id”:“01821e44”,“view”:102},{“business\u unit id”:“02cbcad5”,“view”:103}]
var单位_id=[];
用户\业务\数据。forEach(函数(用户){
user.business\u units.forEach(功能(业务){
单元id.push(business.business\u单元id);
});
});

console.log(unit_id);
user_business_data
是一个数组,而不是一个对象,因此您需要遍历它或从中读取特定索引

此外,代码中的
key
将是一个对象(单个业务单元对象),因此您不能直接打印它,而是需要获取对象中的特定属性

下面是一个简单的演示,从外部数组读取第一个键,然后列出业务部门的所有特定属性。代码可以进一步简化,但这说明了这一点:

var用户\业务\数据=
[{
“用户id”:“5db3e3b1”,
“博客”:{
“博客id”:“128c522e”
},
“业务单位”:[{
“业务单元id”:“000396c9”,
“查看”:101
},
{
“业务单元id”:“01821e44”,
“查看”:102
},
{
“业务单元id”:“02cbcad5”,
“观看”:103
}
]
}]
if(未定义!==用户\业务\数据[0]。业务\单位和用户\业务\数据[0]。业务\单位.length){
对于(var i=0;i}
如果只想打印业务部门ID,则可以执行以下操作:
var用户\业务\数据=
[
{
“用户id”:“5db3e3b1”,
“博客”:{
“博客id”:“128c522e”
},
“业务单位”:[
{
“业务单元id”:“000396c9”,
“查看”:101
},
{
“业务单元id”:“01821e44”,
“查看”:102
},
{
“业务单元id”:“02cbcad5”,
“观看”:103
}           
]
}
]

对于(var i=0;i这是因为
user\u business\u data
是一个数组,而不是一个对象,但您可以像
user\u business\u data.business\u units
那样访问它,而不是
user\u business\u data[0]。business\u units

var user_business_data=[{“user_id”:“5db3e3b1”,“blog”:{“blog_id”:“128c522e”},“business_unit”:[{“business_unit_id”:“000396c9”,“viewing”:101},{“business_unit id”:“01821e44”,“viewing”:102},{“business_unit id”:“02cbcad5”,“viewing”:103}];
//两个方法都给出相同的结果,但第二个方法检查空值。
var ids1=user\u business\u data[0]。business\u units.map(x=>x.business\u unit\u id)
log('方法1:',ids1);
//&&检查空值,有点像if语句。
var data=user\u business\u data.length&&user\u business\u data[0]
var单位=数据和数据。业务单位
var ids2=units&&units.length&&units.map(x=>x.business\u unit\u id)

console.log('Method 2:',ids2)
但是,
将是一个对象,所以打印时没有用除了语法错误,是的。为什么不做一个,这很简单。这样其他人就可以更容易地看到您的解决方案是好的,并且您可以在发布之前测试您自己的代码:-)
if (undefined !== user_business_data[0].business_units && user_business_data[0].business_units.length) {
            for(var i=0;i<user_business_data[0].business_units.length;i++){
    var key = user_business_data[0].business_units[i]. business_unit_id;
    console.log("Key : "+key, "Values : "+user_business_data[0].business_units[key]);
} 
        } else {
           console.log("Undefined value");


}