从包含字符串键/值的json数据中检索布尔值

时间:2014-05-23 10:37:56

标签: c# .net json

我将以下json数据返回给我,我需要检查用户是否已授予'public_actions'权限。

{"data":[{"permission":"installed","status":"granted"},{"permission":"public_profile","status":"granted"},{"permission":"email","status":"granted"},{"permission":"publish_actions","status":"granted"}]}

之前没有真正对json数据做过任何事情,我不确定推荐的方法基本上是真的还是假的(无论是否授予了特定的权限)。

1 个答案:

答案 0 :(得分:1)

Json.NET是一种流行的.NET高性能JSON框架。

这是我如何使用Newtonsoft.Json.dll读取json字符串:

var json = @"{
               data: [
                       {
                          permission: 'installed',
                          status: 'granted'      
                       },
                       {
                          permission: 'public_profile',
                          status: 'granted'      
                       },
                       {
                          permission: 'email',
                          status: 'granted'      
                       },
                       {
                          permission: 'publish_actions',
                          status: 'granted'      
                       }
                     ]
             }";

JObject jObjects = JObject.Parse(json);

foreach (KeyValuePair<String, JToken> kvpParent in jObjects)
{
     var sMainKey = kvpParent.Key;
     var objects = JArray.Parse(kvpParent.Value.ToString());

     foreach (JObject jObj in objects)
     {
          foreach (KeyValuePair<String, JToken> kvp in jObj)
          {
                var sKey = kvp.Key;    //permission
                var sValue = (String)kvp.Value; //installed                       
          }
     }
}

每个KeyValuePair获得2个permissionstatus个键的计数。