我怎样才能json.parse一个javascript字符串?

时间:2017-07-06 13:59:04

标签: javascript json

我试图解析从我从html获取的数据创建的字符串。

    var string = ''
    string += '\n\n\n';
    string += $('#tickmarks').data('hello'+mode);
    string += '\n';
    checks.forEach(function(check){
        if($(check).is(':checked')){
            string += $(check).parent().text();
            string += '\n\n';
        }
    });
    string += $('#tickmarks').data('goodbye'+mode);

    string += '\n';

    string += $('.name').val();
    $('textarea').val(JSON.parse(string));

当我尝试将字符传递给此字符串时,我收到错误。显然JSON中的字符串应该有引号,我试过像这样添加它们:

string += '"'
string += "foo"
string += '"'

和此:

string += '"'
string += "foo"
string += '"'

和此:

string += "'"
string += "foo"
string += "'"

1 个答案:

答案 0 :(得分:0)

没有必要引用行情。 例如,这个字符串很容易解析,而不需要额外的引号:

> JSON.parse('\n\n{}');
< Object {}

但是,如果你想拥有一些jQuery对象的JSON表示,我建议你从jQuery选择中构建一个Object,然后使用JSON.stringify()

    var data = {
       {tickmarks:$('#tickmarks').data('hello'+mode)}     
    };
    checks.forEach(function(check){
        if($(check).is(':checked')){
                data[$(check).parent().text()] = $(check).parent().text();
            }
        });
    JSON.stringify(data);

PS。在您的代码中,您应该尝试打印连接的字符串并验证它是否遵循解析字符串的规则(请参阅:https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Examples

相关问题