簡體   English   中英

如何將從文件讀取的JSON數據轉換為JSON對象

[英]How to convert a JSON data read from a file as JSON object

我想將一個從文件讀取的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語句的輸出如下:

typeof json_variable = object | json_content = {'title':'adventure','name':'Homes'}

當我使用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 =對象| json_content = [對象對象]

請注意輸出的差異,因為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); 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM