2016-08-22 2 views
1

jsonファイルから不変オブジェクトをロードしようとしています。それを要求してからfromJS関数に入力すると、単純なJSオブジェクトが戻ってきます。JSONファイルからロードされたオブジェクトが異なる結果を返し、JSファイルのオブジェクトが宣言されました

オブジェクトを作成せずに同じファイルにオブジェクトを作成すると、うまくいきます。出力を必要とされないオブジェクトログコンソールを使用した場合

はまた、私は気づいた:

jsonObj.json

{ 
    "im":"a json Object" 
} 

jsObj.js

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

test.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

任意の助けを?ありがとう

+0

することができます:あなたが.jsonファイルを必要としたら、それは解析された文字列を期待しJavascript objectJSON.parseながらとして格納されている

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

は、何の驚きこれはエラーをスローしません実際のコードを提供しますか?不変のマップではなく、デフォルトのjavascript [マップ](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map)のようです。 – Dom

+0

コードを追加してください。また、 "私はjsonファイルから不変オブジェクトを読み込もうとしています"ということはどういう意味ですか?あなたはJSONを読み込み、それを不変のマップ/リストに変換しようとしていますか?それとも、文字通りディスク上に不変オブジェクトのシリアル化されたバージョンを持っていますか? – rooftop

答えて

0

あなたのコードはうまくいきます。私はあなたのコードをコピーして得た:

JSON.parse(json); 
+0

ここにはいないが、何ができるのだろうか? – CountOren

+0

は問題を解読している可能性がありますか? – CountOren

+0

どのノードのバージョンを使用していますか? json importsはv0.5.xから動作します。そうでなければ、文字列をインポートします – martriay

関連する問題