Ajax 包含值双引号的JSON字符串将作为NULL发送到控制器

Ajax 包含值双引号的JSON字符串将作为NULL发送到控制器,ajax,Ajax,我做这个AJAX调用: function CreateProjectTree(sc) { debugger; $.ajax({ type: "POST", url: "../api/projects/SearchProjects", data: sc, contentType: "application/json; charset=utf-8", dataType: "json" }).don

我做这个AJAX调用:

function CreateProjectTree(sc)
{
    debugger;
    $.ajax({
        type: "POST",
        url: "../api/projects/SearchProjects",
        data: sc,
        contentType: "application/json; charset=utf-8",
        dataType: "json"
    }).done(function(data)
    {
        buildTree(data);
    }).fail(function(jqXHR, status, error)
    {
        console.log("Error: " + error);
    });
}
如果变量
sc
没有任何值的双引号,(例如
“Person”:“Jack”
),则该变量可以正常工作

但是,如果对象包含双引号,例如:
“Person”:“Jack”
,则它会将对象作为NULL发送给控制器

我不知道为什么会这样

在这种情况下我需要做什么特殊的事情吗?

“Person”:“Jack”
不起作用,因为
“Jack”
上的第二个引号是结束引号(两个引号组成一个字符串:“”)。因此,JSON不好,因此被视为
null
。您可以通过以下两种方法之一进行修复:

1) 在JSON中从使用
改为使用
“Person”:“Jack”

2) 使用转义符在引号内使用引号:
“Person”:“Jack\”