背景描述:
一般我们在遇到这样的JSON时:
const json = {
user: {
posts: [
{ title: 'A',
comments: [ 'Hello!', 'Interesting...' ]
},
{ title: 'B',
comments: [ 'Ok' ]
},
{ title: 'C',
comments: []
}
],
comments: [...]
}
}
需要取出里面的值得这样写:
json.user &&
json.user.posts &&
json.user.posts[0] &&
json.user.posts[0].comments
一般思路:对于取不确定层次的深层值,我们首先想到的是使用递归函数,我要获取的值就需要一个路径来表示,路径可以用数组来标记,如果是数组,我们还需要一个索引来指引,然后我们可以通过递归逐层取值,当路径参数path长度为0时,认为取值完毕,返回结果;
方法一:使用递归函数
function isJson(obj){
var isjson = typeof(obj) == "object" && Object.proto