如何使用Javascript native将JSON文件存储到变量中

时间:2015-04-14 06:19:17

标签: javascript json file parsing

我一直在尝试将JSON文件中的数据存储到变量中 Javascript和一切都很好,直到JSON.parse函数不起作用。

我的文件名为test.json,它看起来像这样:

{
  test: 'Hello World!'
}

我也尝试将其更改为:

{ test: 'Hello World' }

我的javascript代码是这样的:

var a = OwNet.get( 'core/config/test.json', function( Res ) {

 // Res is the response from an AJAX request (where i requested the test.json file)

  if( Res !== "" && Res !== undefined && Res !== null ) {

    // Here i tried to replace the line breaks, carriage returns and spaces. It failed.
    // (I also tried to remove it)
    Res.replace( /\r\n|\r|\n|\s*/gm, "" );

    // Here i tried to transform Res in an object
    tmp = JSON.stringify( Res );
    return JSON.parse( tmp ); // This returns a string instead an object

  } else return null;

});

唯一的问题是变量' a'不是一个对象,而是一个字符串,我一直在寻找答案,但我无法做到。

4 个答案:

答案 0 :(得分:6)

您的JSON无效,请更改为

{
    "test": "HelloWorld!"
}

答案 1 :(得分:0)

您的JSON格式错误,请更改为

{   “测试”:“你好世界!” }

https://msdn.microsoft.com/en-us/library/bb299886.aspx

答案 2 :(得分:0)

非常感谢大家,答案比我想象的要容易:

文件test.json:

{
  "test": "Hello World!"
}

代码:

var a = OwNet.get( 'core/config/test.json', function( Res ) {

// Res is the response from an AJAX request (where i requested the test.json file)

  if( Res !== "" && Res !== undefined && Res !== null ) {

    // Replacing the line breaks, carriage returns and spaces
    Res = Res.replace( /\r\n|\r|\n|\s*/gm, "" );

    // Erased the JSON.stringify and replaced tmp by Res
    return JSON.parse( Res );

  } else return null;

});

答案 3 :(得分:0)

{ "test": "Hello World!" },测试是一个字符串,需要像那样呈现。