javascript - 如何将从文件读取的 JSON 数据转换为 JSON 对象

标签 javascript json

我想将从文件读取的 JSON 对象传递给 POST api。但是,我发现当从文件中读取它时它不起作用。然而,当硬编码的 JSON 数据被传递时,它就可以工作了。为了让您更好地理解,我给出以下代码示例:

var json_content = {};
fs.readfile(file, function(err, data) {
        json_content = data;
        console.log("typeof json_variable  = "+ typeof json_content + "| json_content ="+json_content);
        if(err) {
            console.log("file reading error is = "+err);
            return;
        }
}

上述console.log语句的输出如下:

json_variable 类型=对象| json_content = {'标题':'冒险','名称':'家园'}

当我使用 superagent 将上面的 json_content 作为正文发送到我的帖子调用时,它不起作用。事实上,在服务器中,如果我执行 req.body.title,它会被视为未定义

但是,如果我将 json_content 变量设置为硬编码值,那么它就可以正常工作,而不是从文件中读取并发送上述机制。下面是代码和输出:

json_content = {'title' : 'adventure', 'name': 'Homes'};
console.log("typeof json_variable  = "+ typeof json_content + "| json_content ="+json_content);

这次的输出有所不同,如下所示:

typeof json_variable = object |json_content =[object 对象]

请注意输出中的差异,因为 json_content 现在打印为 [object Object],与之前打印整个 JSON 的情况不同。

您能否建议一下,当我从文件中读取它并将其发送到帖子以获得与硬编码 json 时获得的类似效果时,我需要如何更改第一种方法?

最佳答案

它们之间的唯一区别是,第一个是对象的字符串表示形式,而第二个是 javascript 对象。

var json_content = '[{"key":"value"}]';
console.log("json_content"+json_content);

var json_content = [{"key":"value"}];
console.log("json_content"+json_content);

代码中发生的另一件事是您在 console.log() 语句中使用串联 +
对我来说,你应该避免使用这种方式,并尝试使用 , 代替:

var json_content = '[{"key":"value"}]';
console.log("json_content", json_content);

var json_content = [{"key":"value"}];
console.log("json_content", json_content);

对于您的最后评论:

var json_content = '[{"key":"value"}]';
json_content = JSON.parse('[{"key":"value"}]');
console.log("json_content"+json_content);

关于javascript - 如何将从文件读取的 JSON 数据转换为 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43110664/

相关文章:

javascript - 如何仅使用确定按钮选项将 javascript 消息弹出窗口替换为 Jquery 消息弹出窗口

php - 多上传工具、脚本或插件?

c# - 从 C# 类创建序列化 JSON 列表类型对象

Javascript转义字符串中的所有单引号

javascript - NodeJS 服务器更改 JSON 对象的键名

javascript - 使 .load 在没有包装器的情况下返回

javascript - 如何链接 GCM chrome 推送通知和负载数据?

javascript - 使用独特的选择器关闭所有打开的提示工具

python - 溢出错误: MongoDB can only handle up to 8-byte ints?

javascript - 获取 key Json 并使用名称 var 进行搜索