Если у меня есть простая модель, как это:Итерация через объект JSON на стороне сервера
public class Person
{
public string ID { get; set; }
public string Name { get; set; }
public string Age { get; set; }
}
и у меня есть JSON
объект вроде этого:
var people = {
items: [
{ id: "1", name: "j", age: "11"}
]
};
и я передать его WebMethod
так:
Project.Web.Services.AJAXService.Save(JSON.stringify(people), function (result) {
//
});
Как десериализации это на сервере, чтобы я мог перебирать его с помощью foreach
?
Я попытался это:
[WebMethod(true)]
public void Save(string peopleJson)
{
List<Person> people = JsonConvert.DeserializeObject<List<Person>>(peopleJson);
foreach (var person in people)
{
string str = person.Name;
}
}
Но бросает следующих Exception
:
Не может десериализации текущего объекта JSON (например, { "имя": "значение"}) в тип 'System.Collections.Generic.List`1 [Project.Data.Models.Person]' , потому что для типа требуется массив JSON (например, [1,2,3]) для десериализации correctl у
редактировать: Я только что узнал из this question, что на самом деле это не JSON
но JavaScript
литерал объекта нотации, но я все равно хочу, чтобы быть в состоянии разобрать, что я здесь.
edit2: Это содержание peopleJson
: "{\"items\":[{\"id\":\"1\",\"name\":\"j\",\"age\":\"11\"}]}"
а) вы объявляете 'people' дважды. б) каково содержание «струнных людей»? –
Спасибо, я отредактировал, чтобы исправить это. Я еще раз отредактирую содержимое строки – user982119
, используя wcf? если это так, то должна работать подпись public void Save (Список человек). –
c0deMonk3y