简体   繁体   English

检查json键是否为复杂对象javascript

[英]Check if a json key is a complex object javascript

USING IBP BPM 8.6: 使用IBP BPM 8.6:

I have a Json object as follows: 我有一个Json对象,如下所示:

tw.local.stringifiedJSON = "{"name":"ahmed","age":"20","job":{"salary":"1000","position":"developer"}}";

I parsed into a javascript object: 我解析为一个javascript对象:

var parsedJSONTW= JSON.parse(tw.local.stringifiedJSON);

I want to check if each key is complex (nested or has other keys and values in it like "job") or flat (has a value only like "name") 我想检查每个键是否为复杂键(嵌套或具有其他键和值,如“作业”)或平面键(仅具有值,如“名称”)

var finObj={};
   var i;

  for ( i in parsedJSONTW) {         
    if (finObj[i] === undefined) {  finObj[i] = {};  }

tw.local.propertiesOfObject=Object.getOwnPropertyNames(parsedJSONTW[i]);

if(tw.local.propertiesOfObject==null || tw.local.propertiesOfObject.listLength==0)  
    {
     finObj[i]= parsedJSONTW[i]; //expected to have name and age fields only

    }

Using object.getOwnProperty() doesn't work with a flat object and gives the error of "expected an object but found a string" 使用object.getOwnProperty()不适用于平面对象,并给出“预期对象但找到字符串”的错误

You can use "typeof" for this: 您可以为此使用“ typeof”:

let a = {"name":"ahmed","age":"20","job":{"salary":"1000","position":"developer"}}

for(let k in a){
  console.log(typeof a[k])
  if(typeof a[k] === 'object'){
    console.log("nested")
  }
  else{
    console.log("flat")
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM