【问题标题】:How to convert a JSON data read from a file as JSON object如何将从文件中读取的 JSON 数据转换为 JSON 对象
【发布时间】:2017-03-30 15:09:33
【问题描述】:

我想将从文件中读取的 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 = {'title' : 'adventure', 'name': 'Homes'}

当我使用 superagent 将上面的 json_content 作为正文发送到我的 post call 时,它不起作用。事实上,如果我做 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 Object]

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

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

【问题讨论】:

    标签: javascript json


    【解决方案1】:

    它们之间的唯一区别是一个是对象的字符串表示,而第二个是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);

    【讨论】:

    • 感谢您的回复,但是在从文件中读取它时,我需要应用什么来获取对象而不是字符串表示形式。我使用了 JOSN.parse,但它不起作用。如果你能给出一个有效的例子会很棒!
    • JSON.parse(json_content); 检查JSON 而不是JOSN。 ;)
    • 是的,我尝试了同样的方法,但是在 JSON 中的位置 3 处得到 SyntaxError: Unexpected token '
    • 好的,问题是您的对象中的' 单引号。 JSON 对象有 " 双引号。
    猜你喜欢
    • 2017-10-25
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 2013-09-09
    • 2018-07-03
    • 1970-01-01
    • 2017-01-05
    相关资源
    最近更新 更多