JSON и обратная косая черта - PullRequest
3 голосов
/ 01 февраля 2010

Может кто-нибудь пролить свет на то, почему мой JSON выходит ниже, с дополнительными обратными слешами. Я использую ASP.net MVC для сериализации данных, когда я отлаживаю в Visual studio, все выглядит нормально, но когда я смотрю с firebug с добавлением дополнительных символов?

Есть идеи у кого-нибудь?

"[{\"uid\":\"516219026\",\"pic\":\"http://profile.ak.net/\",\"first_name\":\"Daniel\",\"last_name\":\"James\",\"fql_query_response_Id\":0,\"LIFEID\":null}


function GetFBFriends() {
    FB.Connect.requireSession(function() {
        $.ajax({
            url: "/Facebook/GetFaceBookFriends",
            type: 'POST',
            data: null,
            dataType: 'json',
            success: function(result) {
                data = "<table>";
                alert(result.length);
                for (i = 0; i < result.length; i++) {
                    data += "<tr><td><td><img src=" + result[i].pic + " alt=" + result[i].first_name + " /></td><input type='checkbox' value='" + result[i].uid + "' name='friends[]' id = 'friend" + result[i].uid + "' /></td><td>" + result[i].first_name + " " + result[i].last_name + "</td></tr>";
                }
                data += "</table>"; ;
            }
        });
    })
};






Public Function GetFaceBookFriends() As JsonResult
            Dim fbFriends As New DataTable
            Try
                fbFriends = FacebookModel.GetFriendsAndMatchToLife()
                Return Json(JsonConvert.SerializeObject(fbFriends))
            Catch ex As Exception
            Finally
                fbFriends.Dispose()
                fbFriends = Nothing
            End Try
        End Function

Ответы [ 4 ]

3 голосов
/ 01 февраля 2010

Это Firebug, показывающий строку, содержащую JSON, в своем строковом представлении. Думайте об этом как о JSON-кодировании строки, содержащей JSON. Или, скорее, если бы вы поместили JSON в строковый литерал в вашем Javascript, это выглядело бы так:

Ваша строка на самом деле не содержит этих обратных косых черт. Они просто спасаются двойными кавычками.

1 голос
/ 02 февраля 2010

Я решил этот вопрос, я возвращал данные JSON, которые затем менялись в JSON с помощью jquery, поэтому я просто возвратил строку, и jquery обработал ее правильно.

1 голос
/ 02 февраля 2010

Я бы предложил добавить в первую строку для функции успеха следующее:

console.dir({'result':result});

Это покажет вам, что вы получаете, в отличие от просмотра результата сетевого вызова.

Экран Firebug просто экранирует строку, поэтому вы можете скопировать / вставить весь результат в консоль непосредственно для проверки / опроса ...

var temp = {pasted-string-here}
//var temp = "[{\"uid\":\"516219026\",\"pic\":\"http://profile.ak.net/\", ... }]"
var val = JSON.parse(temp);
console.debug({"val":val});
1 голос
/ 01 февраля 2010

Похоже, Firebug добавляет escape-символы. Что если вы заключили весь JSON в одинарные кавычки? Это может исправить проблему. Изменить Можете ли вы предоставить код, который кодирует ваш JSON?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...