2013-08-28 22 views
13

Ayrıştırma Json dinlenme API yanıtı C# kullanarak bir dinlenme API json yanıtından bir değer çekin çalışıyorum

Ben bir json olsun "yanıtı" izlenmek kodunu

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); 

var aşağıdaki gibi içerik: "521cfcd840926a0b3500449e":

{ 
    "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 
       } 
       } 
      } 
      ] 
     } 
     } 
    ] 
    } 
} 

Nasıl takip değerini "id" çekeceğim? kullanıyorum C# ....

+1

aslında çalışırken genellikle iyi bir başlangıç, hem de – x4rf41

+0

http://stackoverflow.com/questions/6620165/how-to-parse-json-in-c .... (google çok sürü yardımcı olur) Bir çözümleyici kullanın (şu anda bunun kanıtını göstermediniz). Bu konuda da muhtemelen başka konular var. Aramayı denedin mi? Eğer öyleyse, sonuç neden çalışmadı? – Arran

cevap

31

1> Bu namspace ekleyin. Newtonsoft.Json.Linq kullanılarak ; Bu kaynak kodunu kullan> 2> bu kaynak kodunu kullan> n.

JObject joResponse = JObject.Parse(response);     
JObject ojObject = (JObject)joResponse["response"]; 
JArray array= (JArray)ojObject ["chats"]; 
int id = Convert.ToInt32(array[0].toString()); 
1

Json'unuza eşlenen ve Deserialise için Newsoft JsonConvert kullanın bir C# sınıfı oluşturun. Örneğin

:

public Class MyResponse 
{ 
    public Meta Meta { get; set; } 
    public Response Response { get; set; } 
} 
17
  1. verilerinizi,
  2. sonra düzenli C# nesnelere JSON verilerini dönüştürmek için Json.NET kullanmak maç sınıflar oluşturun.

Adım 1: JToken.Parse(...).ToObject<RootObject>(): büyük bir araç - - http://json2csharp.com/ bunun tarafından oluşturulan sonuçlar 2 Adım

altında bulunmaktadır.

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; } 
} 
+0

Dostum, json2csharp web sitesi muhteşem! Paylaşım için teşekkürler! – Hajjat

+0

Ben de aynı şeyi yapıyorum ama bu büyük harf olmadan "C# Kodlama Konvansiyonu" özelliklerini ihlal ediyor gibi görünüyor. Bu örnek nasıl daha iyi hale getirilir? – CodeIt

İlgili konular