function getValueByKey (data, field) {
for (let key in data) {
if (key === field) {
return data[key];
}
if (typeof(data[key]) === 'object' && data[key].length === undefined) {
return getValueByKey(data[key], textField);
}
}
}
var jsonObj = {
"中国": {
"北京": [
"朝阳"
],
"广州": [
"天河"
]
},
"美国": {},
"英国": [
"爱尔兰"
]
}
var result = getValueByKey(jsonObj, '广州');
console.log(result);
function getValueByKey(jsonData, pathArr) {
var values = [];
for (var idx in pathArr) {
var valueJson = {};
valueJson.path = pathArr[idx];
var keyArr = pathArr[idx].split(".");
var value = jsonData;
for (var i in keyArr) {
value = value[keyArr[i]];
}
valueJson.value = value;
values.push(valueJson);
}
return values;
}
var jsonData = {
name: 'simet',
age: 22,
girlfriend: {
name: 'betty',
age: 21,
}
};
var cc = getValueByKey(jsonData, ['girlfriend.age', 'age']);
console.log(cc);
function getKeyAndPath(jsonObj, parentPath) {
var keyJsonArr = [];
var space = '';
if (parentPath != null) {
for (var i = 0; i < parentPath.split('.').length; i++) {
space = space + ' ';
}
}
for (var key in jsonObj) {
var path;
if (parentPath == null) {
path = key;
} else {
path = parentPath + '.' + key;
}
var keyJsonObj = {};
keyJsonObj.key = key;
keyJsonObj.newKey = space + key;
keyJsonObj.path = path;
keyJsonArr.push(keyJsonObj);
if (typeof (jsonObj[key]) == 'object' && jsonObj[key].length == undefined) {
keyJsonArr = keyJsonArr.concat(getKeyAndPath(jsonObj[key], path));
}
}
return keyJsonArr;
}
var aaaaa = getKeyAndPath(jsonData);
console.log(aaaaa);