我试图解析从我从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 += "'"
答案 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)