4

私はこの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 として送信されます。

なぜこれが起こっているのかわかりません。

この場合、何か特別なことをしなければなりませんか?

4

1 に答える 1

2

"Person": ""Jack""の 2 番目の引用符が終了引用符であるため、機能しません""Jack""(2 つの引用符で文字列 "" が作成されます)。このため、JSON は正しくないため、 として扱われていnullます。次の 2 つの方法のいずれかで修正できます。

1) JSON で using"から toに変更し'ます。'Person': '"Jack"'

2) エスケープを使用して、引用符内で引用符を使用します。"Person": "\"Jack\""

于 2013-09-06T00:47:18.903 に答える