2016-07-12 19 views
0

私はNodeJsNodeJsはJSONファイル

sample.jsonファイルは、このような文字列化JSONが含まれてい

var obj = require("./sample.json"); 
    console.log(obj[0]); 

私のコードはかなり基本的なもの、

"[{\"sample\":\"good\",\"val\":76159}]" 
を使用してJSONファイルを読むために抱き合わせていますを読みます

しかし、console.logの出力は '['は変数の最初の要素ではありません。私はこのように長い道のりでファイルを開こうとしました。

var obj; 
fs.readFile('sample.json', 'utf8', function (err, data) { 
    if (err) throw err; 
    obj = JSON.parse(data); 
    console.log(obj[0]); 
}); 

ここでも出力は '['なぜjsonファイルが正しく解析されていないのですか?どうすれば修正できますか?

ありがとうございます。

+2

'データ 'を印刷しましたか? – thefourtheye

+1

https://jsfiddle.net/xgfgmx08/データがあなたの言ったことであれば、動作するはずです。データ内にあるものをダブルチェックする – BeNdErR

+0

@BeNdErRローカルコンピュータでjsonを開くコードを試してみることができます。問題は、私がファイルを開く方法です。例がうまくいけば、jsonを開く方法に問題があります。ファイル? – rksh

答えて

2

[{"sample":"good","val":76159}] 

が含まれている場合

"[{\"sample\":\"good\",\"val\":76159}]" 

次に、2回エンコードされます。

[{ 
    sample:"good", 
    val:76159 
}] 

しかし、コンテンツ[{"sample":"good","val":76159}]を持つ文字列:それは文字列ですが、このJSONはJavaScriptオブジェクトを表していないので、それはまだ有効JSONです。あなたは第二の解析を追加する場合

(最初のものは、暗黙的にrequireによって行われます):

var obj = JSON.parse(require("./sample.json")); 
console.log(obj[0]); 

は、あなたが正しい情報が記録されていることがわかります。
最初の問題は、値を間違った方法で./sample.jsonに保存したことです。

2

[info.json]

[{ 
    "name" : "Young", 
    "age" : 100, 
    "skill" : "js" 
}] 

[main.js]

var jsonObj = require('./info.json'); 
console.log(jsonObj[0]); 

[結果]あなたのファイルが含まれている必要があり

{ name: 'Young', age: 100, skill: 'js' } 
関連する問題