如何获得JSON格式+C#的标签

本文关键字:标签 +C# 格式 何获得 JSON | 更新日期: 2023-09-27 17:57:27

我有一个json格式的文件,如下所示,包含10项:

   "items": [
                {
                "kind": "Test#result",
                "cacheId": "PR1wQp1jFRQJ",
                 "pagemap": {
                    "person": [
                            {
                       "location": "Greater Minneapolis-St. Paul Area",
                       "role": "Test at Test"
                            }
                              ],
                   "metatags": [
                           {
                          "lnkd-track-json-lib": "test",
                           }
                               ],
                    "hcard": [
                          {
                   "title": "Wealth Advisor at XXX",
                   "photo": "contag.jpg"
                          },
                     {
                        "fn": "Unviersity of XXXX"
                     },
                   ]
               }
         },
         NEXT ITEM....
 ]

我使用下面的代码从这个JSON中获取每个项目:

        string result = webClient.DownloadString(String.Format("aurl.com?alt=json"));
        JavaScriptSerializer serializer = new JavaScriptSerializer();
        Dictionary<string, object> collection = serializer.Deserialize<Dictionary<string,          object>>(result);
        foreach (Dictionary<string, object> item in (IEnumerable)collection["items"])
        {
            Console.WriteLine("Title: {0}", item["kind"]);
            Console.WriteLine("Role: {0}", ??);
            Console.WriteLine();
        }

如何使用我的逻辑从JSON中获取"角色"和位置?我用C#来写它。

如何获得JSON格式+C#的标签

我首先要创建一个类来表示数据,然后使用序列化程序来创建该类。

class items
{
    public string kind {get;set;}
    public string cacheId {get;set;}
    public string pagemap {get;set;}
    public person person {get;set;}
}
class person
{
    public string location {get;set;}
    public string role {get;set;}
}

等等…

然后。。。

string jsonInput="have your valid json input here"; //
JavaScriptSerializer jsonSerializer = new JavaScriptSerializer();
items objItems  = jsonSerializer.Deserialize<items>(jsonInput)

我们现在可以像调用类中的任何其他对象一样调用我们的项。

items.kind
items.cacheId
items.person.location

它们的关键是为以后更容易访问数据奠定基础。