ASP.NET MVC 3 Разобрать объект JSon и отобразить данные - PullRequest
1 голос
/ 29 февраля 2012

У меня есть класс

public class ConversionResultModel
    {
        public string ProcessId { get; set; }
        public bool Result { get; set; }
        public string Message { get; set; }         
    }

отправка на просмотр с помощью JSon

   public ActionResult UploadFile(IEnumerable<HttpPostedFileBase> clientUpload)
    {
        string destinationPath = "";
        JsonResult result = null;
        var fileModel = new ConversionResultModel();
        fileModel.ProcessId = "4558-95559-554";
        fileModel.Result = true;
        fileModel.Message = "test.pdf";
        result = Json(new { fileModel }, "text/plain");


        return result;
    }

Как проанализировать такой объект JSon на стороне клиента с помощью JS или jQuery и прочитать значения?

Я пытался проанализировать объект JSon с кодом ниже, но получил неопределенную ошибку в предупреждении

 var obj = $.parseJSON(e.response);
 alert(e.obj);

Я получаю объект JSon, подобный этому

{"fileModel":{"ProcessId":"4558-95559-554","Result":true,"Message":null,"SourceFile":null,"ConvertedFileName":"test.pdf","ConvertedFileSize":1233444,"DownloadUrl":"http://localhost:2008/download?path=4558-95559-554","DeleteUrl":"http://localhost:2008/download?path=4558-95559-554"}}

Ответы [ 2 ]

3 голосов
/ 29 февраля 2012

Вам не нужно разбирать его. Просто установите тип данных JSON во время запроса ajax, а затем используйте полученный объект данных, такой как сущность, и вы легко сможете получить доступ к любому свойству:

var id = data.ProcessId;

В любом случае, используя jQuery , вы можете проанализировать строку JSON:

var data = jQuery.parseJSON(stringData);

P.S:

Используйте следующий пример кода для преобразования объекта в JSON в ASP.NET MVC:

return this.Json(fileModel);
0 голосов
/ 29 февраля 2012

http://api.jquery.com/jQuery.parseJSON/

В вашем случае, я думаю, вы получаете правильный JSON, но ваше предупреждение смотрит не на тот объект.Попробуйте оповещение (obj.SomeProperty), а не оповещение (e.obj).e.obj не существует, поэтому, вероятно, вы получаете «неопределенную» ошибку.Например, alert (obj.fileModel.ProcessId);должно работать.

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