Analyse de la réponse de l’api de repos Json en C #

J’essaie de tirer une valeur d’une réponse api json de repos en utilisant C #.

J’ai le code suivant:

client.BaseUrl = "https://api.cloud.appcelerator.com"; request.Resource = "/v1/chats/create.json?key=" + cac.AppCode.ToSsortingng(); request.Method = Method.POST; request.AddUrlSegment("appkey", "key"); var response = client.Execute(request); 

Dans le message “réponse” j’ai un contenu json comme suit:

 { "meta": { "code": 200, "status": "ok", "method_name": "createChatMessage" }, "response": { "chats": [ { "id": "521cfcd840926a0b3500449e", "created_at": "2013-08-27T19:24:08+0000", "updated_at": "2013-08-27T19:24:08+0000", "message": " join to the chat group, welcome …", "from": { "id": "520f41e125e74b0b2400130a", "first_name": "Administrator", "created_at": "2013-08-17T09:26:57+0000", "updated_at": "2013-08-27T19:23:10+0000", "external_accounts": [ ], "email": "[email protected]", "confirmed_at": "2013-08-17T09:26:57+0000", "username": "admin", "admin": "true", "stats": { "photos": { "total_count": 0 }, "storage": { "used": 0 } } }, "chat_group": { "id": "521cfcd840926a0b3500449d", "created_at": "2013-08-27T19:24:08+0000", "updated_at": "2013-08-27T19:24:08+0000", "message": " join to the chat group, welcome …", "participate_users": [ { "id": "520f41e125e74b0b2400130a", "first_name": "Administrator", "created_at": "2013-08-17T09:26:57+0000", "updated_at": "2013-08-27T19:23:10+0000", "external_accounts": [ ], "email": "[email protected]", "confirmed_at": "2013-08-17T09:26:57+0000", "username": "admin", "admin": "true", "stats": { "photos": { "total_count": 0 }, "storage": { "used": 0 } } } ] } } ] } } 

Comment puis-je extraire la valeur nestede suivante de “id”: “521cfcd840926a0b3500449e” du message de résultat renvoyé par la réponse json?

J’utilise C #.

1> Ajouter cet espace de noms. using Newtonsoft.Json.Linq;

2> utiliser ce code source.

 JObject joResponse = JObject.Parse(response); JObject ojObject = (JObject)joResponse["response"]; JArray array= (JArray)ojObject ["chats"]; int id = Convert.ToInt32(array[0].toSsortingng()); 
  1. Créez des classes qui correspondent à vos données,
  2. utilisez ensuite JSON.NET pour convertir les données JSON en objects C # normaux.

Étape 1: un excellent outil – http://json2csharp.com/ – les résultats générés par celui-ci sont présentés ci-dessous.

Étape 2: JToken.Parse(...).ToObject() .

 public class Meta { public int code { get; set; } public ssortingng status { get; set; } public ssortingng method_name { get; set; } } public class Photos { public int total_count { get; set; } } public class Storage { public int used { get; set; } } public class Stats { public Photos photos { get; set; } public Storage storage { get; set; } } public class From { public ssortingng id { get; set; } public ssortingng first_name { get; set; } public ssortingng created_at { get; set; } public ssortingng updated_at { get; set; } public List external_accounts { get; set; } public ssortingng email { get; set; } public ssortingng confirmed_at { get; set; } public ssortingng username { get; set; } public ssortingng admin { get; set; } public Stats stats { get; set; } } public class ParticipateUser { public ssortingng id { get; set; } public ssortingng first_name { get; set; } public ssortingng created_at { get; set; } public ssortingng updated_at { get; set; } public List external_accounts { get; set; } public ssortingng email { get; set; } public ssortingng confirmed_at { get; set; } public ssortingng username { get; set; } public ssortingng admin { get; set; } public Stats stats { get; set; } } public class ChatGroup { public ssortingng id { get; set; } public ssortingng created_at { get; set; } public ssortingng updated_at { get; set; } public ssortingng message { get; set; } public List participate_users { get; set; } } public class Chat { public ssortingng id { get; set; } public ssortingng created_at { get; set; } public ssortingng updated_at { get; set; } public ssortingng message { get; set; } public From from { get; set; } public ChatGroup chat_group { get; set; } } public class Response { public List chats { get; set; } } public class RootObject { public Meta meta { get; set; } public Response response { get; set; } } 

Créez une classe C # qui mappe sur votre Json et utilisez Newsoft JsonConvert pour la désérialiser.

Par exemple:

 public Class MyResponse { public Meta Meta { get; set; } public Response Response { get; set; } }