在C#中解析Jsonrestapi响应
我试图使用C#从rest api json响应中提取值。
我有以下代码:
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);
在“响应”消息中,我得到了一个json内容如下:
{ "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": "roy@tomax.co.il", "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": "roy@tomax.co.il", "confirmed_at": "2013-08-17T09:26:57+0000", "username": "admin", "admin": "true", "stats": { "photos": { "total_count": 0 }, "storage": { "used": 0 } } } ] } } ] } }
如何从返回的json响应结果消息中提取以下嵌套值“id”:“521cfcd840926a0b3500449e”?
我正在使用C#。
1>添加此namspace。 使用Newtonsoft.Json.Linq;
2>使用此源代码。
JObject joResponse = JObject.Parse(response); JObject ojObject = (JObject)joResponse["response"]; JArray array= (JArray)ojObject ["chats"]; int id = Convert.ToInt32(array[0].toString());
- 创建与您的数据匹配的类,
- 然后使用JSON.NET将JSON数据转换为常规C#对象。
第1步:一个很棒的工具 – http://json2csharp.com/ – 它产生的结果如下
第2步: JToken.Parse(...).ToObject
。
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
创建一个映射到Json的C#类,并使用Newsoft JsonConvert
进行反序列化。
例如:
public Class MyResponse { public Meta Meta { get; set; } public Response Response { get; set; } }