Объект XMLHttpRequest в JSON - PullRequest
0 голосов
/ 17 мая 2011

Я создаю форму jquery ajax, которая вызывает метод ниже

public string GetRestaurantInfo(string date, string pageId)
{
    Node node = new Node(Convert.ToInt32(pageId));
    string day = DateTime.Parse(date).DayOfWeek.ToString();
    return JsonConvert.SerializeObject(GetOpeningHours(node, day));
}

private static object GetOpeningHours(Node node, string day)
{
    XDocument xmlDoc = XDocument.Parse(node.GetProperty("openingHours").ToString());
    var q = from item in xmlDoc.Descendants("scheduleItem")
                where item.Element("weekDayLocal").Value == day
                select new
                {
                    day = item.Element("weekDayLocal").Value,
                    startTime = item.Element("firstSet").Element("hourStart").Value,
                    closingTime = item.Element("firstSet").Element("hourEnd").Value,
                    hoursOpen = 4
                };
    return q;
}

Я бы хотел, чтобы данные возвращались в формате JSON, но он возвращает данные в следующем формате

{"d":" [{\"day\":\"Tuesday\",\"startTime\":\"17:00\",\"closingTime\":\"11:00\",\"hoursOpen\":4}]"}

Я не уверен, как решить эту проблему? Есть идеи?

Заранее спасибо за любую помощь

Ответы [ 2 ]

0 голосов
/ 30 июля 2011

Я предполагаю, что на эту ветку не было ответа, и я нашел эту ветку, когда у меня в Google возникла та же проблема. После борьбы с Firebug решение оказалось простым. Вы просто должны разобрать его дважды, как показано в следующем коде. Но я не уверен, является ли это правильным решением или это влияние на вызов веб-службы, который я пытался сделать.

JSON.parse (JSON.parse (результат) .d)

В любом случае, просто для того, кто хочет узнать, как звонит веб-сервис,

    xhr = new XMLHttpRequest();
    xhr.open('POST', url, true);
    xhr.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    xhr.onreadystatechange = function () {
        if (xhr.readyState == 4) {
            if (xhr.status == 200) {
                //xhr.responseText; this contains the data
            }
        }
    };
    xhr.send(params);

Спасибо, Сабо

0 голосов
/ 19 мая 2011

Ну, это jSon, я полагаю. Вы пытались сделать ниже в функции обратного вызова javascript.

function callback(rslt,cntxt){
var result = Sys.Serialization.JavaScriptSerializer.deserialize(rslt);
console.dir(result);
}

посмотрите на консоль пожарной машины и осмотрите объект, который был сброшен.

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