десериализовать как:

кто-нибудь сказать мне, как я могу десериализовать объект, который содержит несколько атрибутов?

Учитывая сценарий ниже, код работает нормально.

public ActionResult Index()
{
    string json = @"{""name"": ""Person 2"",""email"": ""[email protected]""}";

    var emp = JsonConvert.DeserializeObject<Person>(json);
    Response.Write(emp.name + emp.email);
    return View();
}

public class Person
{
    public string name { get; set; }
    public string email { get; set; }
}

Но что мне делать, если массив содержит несколько элементов, например

string json = @"{""data"": [{""name"": ""Person 1"",""email"": ""[email protected]""},{""name"": ""Person 2"",""email"": ""[email protected]""}]}";

заранее спасибо

Ответы, которые уже даны ниже, идеально подходят для поставленной мной задачи, но теперь я на шаг впереди. Кто-нибудь может посоветовать, что мне нужно сделать, если бы в json был массив, например. добавление адреса в?

{
    "data": [
        {
            "name": "Person 1",
            "email": "[email protected]",
            "address": {
                "address1": "my address 1",
                "address2": "my address 2" 
            } 
        },
        {
            "name": "Person 2",
            "email": "[email protected]",
            "address": {
                "address1": "my address 1",
                "address2": "my address 2" 
            } 
        } 
    ] 
}
 Enigmativity21 янв. 2011 г., 00:32
Если твойPerson класс также был расширен сAddress свойство класса, тогда вам не нужно ничего делать. В противном случае вы говорите, что это не так, и теперь у вас есть это «дополнительное» свойство?

Ответы на вопрос(3)

десериализовать как:

public class JsonData
{
  public List<Person> Data {get;set;}
}
Решение Вопроса

JObject o = JObject.Parse(json); // This would be the string you defined above
// The next line should yield a List<> of Person objects...
List<Person> list = JsonConvert.DeserializeObject<List<Person>>(o["data"].ToString());

Вы можете украсить свой объект Person следующим образом:

[JsonObject(MemberSerialization.OptIn)]
public class Person
{
    [JsonProperty]
    public string name{get;set;}
    [JsonProperty]
    public string email{get;set;}
}

Вы можете использовать анонимный тип.

var template = new { data = new Person[] { } };
Person[] emps = JsonConvert
    .DeserializeAnonymousType(json, template)
    .data;

Ваш ответ на вопрос