JQuery.parseJSON не работает со строкой

Я пытаюсь проанализировать строку в объекте. Я просмотрел документацию jQueryparseJSON по следующей ссылке. Я также включил библиотеку jquery, поэтому я знаю, что это не так.

Это мой код до сих пор

  • Как сделать полноэкранный режим браузера с помощью ключевого события F11 через JavaScript
  • Select2 - использовать JSON в качестве локальных данных
  • В чем разница между функцией и функцией конструктора в javascript?
  • Библиотека редактора изображений Javascript
  • Как обнаружить вспышку с помощью SWFObject
  • Получить ссылку на Kendo Grid изнутри обработчика ошибок
  • var str = "{'val1': 1, 'val2': 2, 'val3': 3}"; var obj = jQueryparseJSON( str ); alert(obj.val1); 

    В Firebug я получаю следующие ошибки:

     SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data 

    Я знаю, что решение более чем вероятно очень просто, но я неоднократно его игнорировал.

  • XML-файл xPath с пространствами имен с использованием Javascript
  • Загрузка файла через ajax с помощью php
  • Почему ("foo" === new String ("foo")) оценивается как false в JavaScript?
  • Использование AJAX для чтения локальных файлов
  • Использование файла .html, .js, сохраненного в песочнице (папке Documents) приложения iOS, чтобы я мог открыть html-файл в режиме offilne
  • Переменная количество вложенных циклов
  • 4 Solutions collect form web for “JQuery.parseJSON не работает со строкой”

    Строка теста в вашем примере кода недействительна JSON:

     var str = '{"val1": 1, "val2": 2, "val3": 3}'; var obj = jQuery.parseJSON( str ); alert(obj.val1); 

    Теперь, если вы все это делаете, потому что какая-то служба делает этот объект доступным как строка JSON, вероятно, случай, когда jQuery будет делать шаг синтаксического анализа для вас в любом случае. Если вы просто пытаетесь включить литерал объекта в свой код JavaScript, то нет причин вообще привлекать службы JSON:

     var obj = { val1: 1, val2: 2, val3: 3 }; 

    Создает объект.

    Обратите внимание, что синтаксис JSON более строгий, чем синтаксис литерала объекта JavaScript. JSON настаивает на том, что имена свойств цитируются с символами двойной кавычки, и, конечно, значения могут быть только номерами, строками, булевыми или null .

    Строка недействительна JSON. Ключи объектов должны быть окружены двойными кавычками, а не одинарные кавычки.

     var str = '{"val1": 1, "val2": 2, "val3": 3}'; var obj = jQuery.parseJSON(str); alert(obj.val1); 

    DEMO

    В вашем коде есть typo :

    Здесь var obj = jQueryparseJSON( str );

    Должен быть var obj = jQuery.parseJSON( str );

     function str2json (str, val, obj) { var obj = str.indexOf("'") != -1 ? JSON.parse(str.replace(/'/g, "\"")) : JSON.parse(str); return (val === undefined ? obj /* JSON.stringify(obj) */ : obj[val]) }; str2json("{'val1': 1, 'val2': 2, 'val3': 3}", "val1"); // `1` str2json("{'val1': 1, 'val2': 2, 'val3': 3}") // `obj` : `[object Object]` , // `JSON.stringify(obj)` : `{"val1":1,"val2":2,"val3":3}` 

    Jsfiddle http://jsfiddle.net/guest271314/n8jLG/

    JavaScript делает сайт умным, красочным и простым использованием.