Nityananda Das Ответов: 1

Как получить значение из JSON объекта


как получить значение электронной почты из приведенного ниже объекта json в c#

{
  "data": {
    "type": "get-company-clients-response",
    "attributes": {
      "clients": [
        {
          "accountId": "53784",
          "nameOfPerson": {
            "preNominalLetters": null,
            "initials": null,
            "firstName": "bob",
            "middleName": null,
            "lastName": "gebruiker",
            "postNominalLetters": null
          },
          "email": "test@test.com",
          "profilePhoto": {
            "guid": null,
            "profilePhotoUrl": "http://www.gravatar.com",
            "useOwnProfilePhoto": false
          },
          "clientType": 0
        },
        {
          "accountId": "56308",
          "nameOfPerson": {
            "preNominalLetters": null,
            "initials": null,
            "firstName": "test",
            "middleName": null,
            "lastName": "test",
            "postNominalLetters": null
          },
          "email": "test@test.com",
          "profilePhoto": {
            "guid": null,
            "profilePhotoUrl": "http://www.gravatar.com",
            "useOwnProfilePhoto": false
          },
          "clientType": 0
        }
      ]
    }
  }
}


Что я уже пробовал:

JObject results = JObject.Parse(companyClients);
                    
                    foreach (var result in results["data"])
                    {
                        companyClients.Add((string)result["attributes"]);
                    }

Richard MacCutchan

В чем же вопрос?

1 Ответов

Рейтинг:
0

OriginalGriff

Создайте соответствующие классы:

public class NameOfPerson
{
    public object preNominalLetters { get; set; }
    public object initials { get; set; }
    public string firstName { get; set; }
    public object middleName { get; set; }
    public string lastName { get; set; }
    public object postNominalLetters { get; set; }
}

public class ProfilePhoto
{
    public object guid { get; set; }
    public string profilePhotoUrl { get; set; }
    public bool useOwnProfilePhoto { get; set; }
}

public class Client
{
    public string accountId { get; set; }
    public NameOfPerson nameOfPerson { get; set; }
    public string email { get; set; }
    public ProfilePhoto profilePhoto { get; set; }
    public int clientType { get; set; }
}

public class Attributes
{
    public List<Client> clients { get; set; }
}

public class Data
{
    public string type { get; set; }
    public Attributes attributes { get; set; }
}

public class RootObject
{
    public Data data { get; set; }
}
(Я использовал json2csharp - генерация классов c# из json[^] чтобы получить их), а затем просто приведите результат к корневому классу. Затем вы можете получить доступ к данным обычным способом.

Я предпочитаю Newtonsoft JSON (Json.NET - Newtonsoft[^]) - мне просто кажется, что это немного проще в использовании.