gpt4 book ai didi

javascript - 从 JSON 文件加载的对象返回与 JS 文件中声明的对象不同的结果

转载 作者:行者123 更新时间:2023-11-28 05:38:59 26 4
gpt4 key购买 nike

我正在尝试从 json 文件加载不可变对象(immutable对象)。在需要它并将其输入到 fromJS 函数后,我得到了简单的 JS 对象,而不是不可变的 MAP。

我注意到,当我在同一个文件中创建对象而不需要它时,它工作得很好。

此外,我注意到在使用控制台日志时,对象未获得所需的输出:

jsonObj.json

{
"im":"a json Object"
}

jsObj.js

export default {
"im":"a js object"
}

测试.js

从“不可变”导入{fromJS};

describe('immutable test', ()=>{
it('should be able to load and parsed json from file',()=>{
var json = require('./jsonObj.json');
var js = require('./jsObj.js');
console.log(json);//output: { im: 'a json Object' }
console.log(js.default);//outputs: { im: 'a js object' }

console.log(fromJS(json));//outputs: { im: 'a json Object' }
console.log(fromJS(js.default));//outputs: Map { "im": "a js object" }

//if adding:
JSON.parse(json);//throws:
// SyntaxError: Unexpected token o in JSON at position 1
// at Object.parse (native)

});
});

我正在使用:

不可变的3.8.1

节点6.3.1

有什么帮助吗?谢谢

最佳答案

您的代码运行良好。我复制了你的代码并得到:

{ im: 'a json' }
{ im: 'a js object' }
Map { "im": "a json" }
Map { "im": "a js object" }

一旦您需要 .json 文件,它就会被解析并存储为 Javascript 对象,而 JSON.parse 需要一个字符串,不令人惊讶的是,这会引发错误:

JSON.parse(json);

关于javascript - 从 JSON 文件加载的对象返回与 JS 文件中声明的对象不同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39090406/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com