J'essaie de tirer une valeur d'une réponse json api 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.ToString();
request.Method = Method.POST;
request.AddUrlSegment("appkey", "key");
var response = client.Execute(request);
Dans le message "réponse", j'ai obtenu 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 extraire la valeur imbriquée suivante de "id": "521cfcd840926a0b3500449e" du message de résultat de réponse json renvoyé?
J'utilise C #.
1> Ajoutez ce namspace. using Newtonsoft.Json.Linq;
2> utilisez ce code source.
JObject joResponse = JObject.Parse(response);
JObject ojObject = (JObject)joResponse["response"];
JArray array= (JArray)ojObject ["chats"];
int id = Convert.ToInt32(array[0].toString());
Étape 1: un excellent outil - http://json2csharp.com/ - les résultats générés par celui-ci sont ci-dessous
Étape 2: JToken.Parse(...).ToObject<RootObject>()
.
public class Meta
{
public int code { get; set; }
public string status { get; set; }
public string 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 string id { get; set; }
public string first_name { get; set; }
public string created_at { get; set; }
public string updated_at { get; set; }
public List<object> external_accounts { get; set; }
public string email { get; set; }
public string confirmed_at { get; set; }
public string username { get; set; }
public string admin { get; set; }
public Stats stats { get; set; }
}
public class ParticipateUser
{
public string id { get; set; }
public string first_name { get; set; }
public string created_at { get; set; }
public string updated_at { get; set; }
public List<object> external_accounts { get; set; }
public string email { get; set; }
public string confirmed_at { get; set; }
public string username { get; set; }
public string admin { get; set; }
public Stats stats { get; set; }
}
public class ChatGroup
{
public string id { get; set; }
public string created_at { get; set; }
public string updated_at { get; set; }
public string message { get; set; }
public List<ParticipateUser> participate_users { get; set; }
}
public class Chat
{
public string id { get; set; }
public string created_at { get; set; }
public string updated_at { get; set; }
public string message { get; set; }
public From from { get; set; }
public ChatGroup chat_group { get; set; }
}
public class Response
{
public List<Chat> chats { get; set; }
}
public class RootObject
{
public Meta meta { get; set; }
public Response response { get; set; }
}
Créez une classe C # qui correspond à votre Json et utilisez Newsoft JsonConvert
Pour le désérialiser.
Par exemple:
public Class MyResponse
{
public Meta Meta { get; set; }
public Response Response { get; set; }
}