Десериализация объекта JSON на JavaScript

192
24 апреля 2018, 01:01

Требуется получить список объектов класса Man

public class Man
{
    public int Id { get; set; }
    public string Firstname { get; set; }
    public string Secondname { get; set; }
    public int Age { get; set; }
}

Отправляю запрос на сервер

$.ajax({
    url: url,
    type: "POST",
    data: {
        "count": count
    },
    dataType: "json"
})

В методе контроллера формирую массив из объектов и отправляю клиенту

for (int i = 0; i < dif; i++)
{
    mans[i] = await manContext.Mans.FirstOrDefaultAsync(m => m.Id == mansCount - dif + i);
}
return Json(mans);

Каким способом можно получить значение полей объекта Man (имя, возраст и прочее) из JSON при помощи JS?

Answer 1

Пример запроса:

$.ajax({ 
type: "POST",  
url: url, 
data: { count: 'count' }, 
dataType:'json', 
success: function(data){ 
alert ( data.Firstname), 
alert ( data.Age) 
} 
});

AJAX POST Обработка события кнопки формы

<!DOCTYPE html> 
<html> 
<head> 
    <title>jQuery AJAX POST</title> 
    <meta charset="utf-8"> 
</head> 
<body> 
 
<div id="response"> 
    <pre></pre> 
</div> 
 
<form id="my-form"> 
    <button type="submit">Submit</button> 
</form> 
 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script> 
    (function($){ 
        function processForm( e ){ 
            $.ajax({ 
                url: 'http://ip-api.com/json/', 
                dataType: 'text', 
                type: 'post', 
                contentType: 'application/x-www-form-urlencoded', 
                data: $(this).serialize(), 
                success: function( data, textStatus, jQxhr ){ 
                    $('#response pre').html( data ); 
                }, 
                error: function( jqXhr, textStatus, errorThrown ){ 
                    console.log( errorThrown ); 
                } 
            }); 
 
            e.preventDefault(); 
        } 
 
        $('#my-form').submit( processForm ); 
    })(jQuery); 
</script> 
</body> 
</html>

Сериализация JSON C#

[DataContract]
class Man
{
     [DataMember]
     public int Id { get; set; }
     [DataMember]
     public string Firstname { get; set; }
     [DataMember]
     public string Secondname { get; set; }
     [DataMember]
     public int Age { get; set; }
     public Man() { }
     public Man(int Id, string Firstname, int Age)
     {
         this.Id = Id;
         this.Firstname = Firstname;
         this.Age = Age;
     }
}

Десериализация Json C#

DataContractJsonSerializer jsonFormatter = new DataContractJsonSerializer(typeof(Man));
Man newitems = (Man)jsonFormatter.ReadObject(File.OpenRead("Man.json"));

Json JavaScript

<script> 
	var user = '{ "Id": 1, "Firstname": "Вася", "Secondname": "Васильев", "Age": 28 }'; 
	user = JSON.parse(user); 
	alert( user.Age ); 
</script>

READ ALSO
Ajax ошибка при передачи строки

Ajax ошибка при передачи строки

Здравствуйте! Не могу через jquery (19) post передать следующую строку: "r1bqkbnr/1ppp1ppp/p1n5/4p3/" Приходит 415 ошибка

208
Запись в (возможно) трёхмерный Dictionary - table.Open[1, &ldquo;2&rdquo;] = 3

Запись в (возможно) трёхмерный Dictionary - table.Open[1, “2”] = 3

Здравствуйте, товарищиЗадание - создать класс таблицы и записать значение в ячейку в виде

208
Привязка элементов в ComboBox

Привязка элементов в ComboBox

Не могу понять, где у меня ошибка с привязкой элементов к ComboBox

198
C# WPF запрет запуска копий приложения

C# WPF запрет запуска копий приложения

как запретить запуск новых копий приложения? если оно уже запущено то фокус на окно или развернуть

225