最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

遍历对象,并且超出了最大调用堆栈大小

运维笔记admin8浏览0评论

遍历对象,并且超出了最大调用堆栈大小

遍历对象,并且超出了最大调用堆栈大小

我正在尝试读取结构如this的文件的内容>

[获取对象时,我试图找到其嵌套属性名称ErrorCode。但是函数fetch_property始终返回未定义。

这里是功能

read_content = (path) => {
    fs.readFile(path, 'utf8', function (error, data) {
        json_data = data
        // console.log(data)
        data = JSON.parse(JSON.stringify(data))
        tem_data = data
        // Object.keys(data).forEach(key => console.log(key))
        // tem_data = data['Response']['Error']
        let result = fetch_property(data, "ErrorCode");
        console.log(result)
    })
}

fetch_property = (obj, property) => {
    if (obj[property] == property) {
        return obj[property]
    } else {
        for (let i in obj) {
            let found_label = fetch_property(obj[i], property)
            if (found_label) return found_label
        }

    }
}

如何从readFile函数返回的内容中获取ErrorCode属性的值?

我刚刚发现即使使用JSON.parse,数据类型仍然是字符串。为什么未将其转换为对象?

我正在尝试读取结构如下的文件的内容:获取对象时,我试图找到其嵌套的属性名称ErrorCode。但是函数fetch_property总是返回...

回答如下:

您的代码几乎没有问题。首先,您不需要JSON.stringifyJSON.parse就足够了。其次,您的if语句if (obj[property] == property)不起作用。您应该首先遍历所有项目的属性。这是一个工作示例:

发布评论

评论列表(0)

  1. 暂无评论