我需要将字符串转换为JSON对象,以便可以使用AJAX发布它。截至目前,我能找到的所有答案都将其转换为javascript对象,这归因于“键”上没有双引号,而仅在值上有双引号。 我进行了很多搜索,但是几乎所有答案都将其转换为JS对象,而REST端点将仅接受JSON对象。请帮忙。
我有以下格式的字符串:
{“ subject”:“ school,”,“ description”:“ top10,”,“ classsize”:“ 35”}
以JSON字符串形式获取表单数据的功能
function getFormData($form){
var unindexed_array = $form.serializeArray();
var indexed_array = {};
$.map(unindexed_array, function(n, i){
indexed_array[n['name']] = n['value'];
});
return indexed_array;
}
然后在表单数据上使用JSON.stringify。
答案 0 :(得分:1)
使用JSON.parse()
:
var string = "'{\"subject\":\"school,\",\"description\":\"top10,\",\"classsize\":\"35\"}'";
//remove the backslashes
var string_ed = unescape(string);
//remove the surrounding single quotes
string_ed = string_ed.substr(1, string_ed.length - 2);
var jsonObj = JSON.parse(string_ed);
document.getElementById("result").innerText = JSON.stringify(jsonObj);
<div id="result"></div>