2015-04-14 2 views
2

Я пытался хранить данные из файла JSON в переменной в Javascript, и все было хорошо, пока функция JSON.parse не работала.Как сохранить файл JSON в переменную с использованием Javascript native

Мой файл называется test.json и это выглядит следующим образом:

{ 
    test: 'Hello World!' 
} 

Я также попытался изменить его на:

{ 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) { 

    // 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' не является объектом, вместо этого она является строкой, я искал ответ, но я не мог.

+0

Является ли JSON.parse (tmp), возвращающим любую ошибку ??? –

+1

Почему вы называете 'stringify'? Вы пытаетесь де-сериализовать, не так ли? – haim770

+0

Нет, что нет. Ошибок нет. Я использовал stringify, потому что я читал, что должен был добавить его перед JSON.parse – ErikMj69

ответ

6

Ваш JSON не является действительным, изменение

{ 
    "test": "HelloWorld!" 
} 
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; 

}); 
+0

Вы должны одобрить некоторый ответ. –

+0

Хорошо, извините, я никогда не был на форуме. @ АлександрГорелик и кто-то, чей ответ я видел раньше. Последний из них дал мне ответ на Res = Res.replace ... но я не могу найти его/ее имя – ErikMj69

+0

Еще один вопрос, как я могу закрыть эту тему ?? – ErikMj69

0

{ "test": "Hello World!" }, испытание является строкой и должна быть представлена ​​так.

Смежные вопросы