加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 使用JSON.NET读取动态属性名称

发布时间:2020-12-15 19:27:59 所属栏目:百科 来源:网络整理
导读:我正在使用来自返回 JSON的外部API的数据,如下所示. { "data": { "4": { "id": "12","email": "q23rfedsafsadf","first_name": "lachlan", 使用JSON.NET,我如何获得4值?这是动态的,因为它改变了每条记录(不是我用过的最理想的API). 解决方法 这是一个有效的
我正在使用来自返回 JSON的外部API的数据,如下所示.

{
  "data": {
    "4": {
      "id": "12","email": "q23rfedsafsadf","first_name": "lachlan",

使用JSON.NET,我如何获得4值?这是动态的,因为它改变了每条记录(不是我用过的最理想的API).

解决方法

这是一个有效的dotNetFiddle: https://dotnetfiddle.net/6Zq5Ry

这是代码:

using System;
using Newtonsoft.Json;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        string json = @"{
                      'data': {
                        '4': {
                          'id': '12','email': 'lachlan12@somedomain.com','first_name': 'lachlan'
                          },'5': {
                          'id': '15','email': 'appuswamy15email@somedomain.com','first_name': 'appuswamy'
                          }
                       }
                    }";

        var data = JsonConvert.DeserializeObject<RootObject>(json);
        Console.WriteLine("# of items deserialized : {0}",data.DataItems.Count);
        foreach ( var item in data.DataItems)
        {
            Console.WriteLine("  Item Key {0}: ",item.Key);
            Console.WriteLine("    id: {0}",item.Value.id);
            Console.WriteLine("    email: {0}",item.Value.email);
            Console.WriteLine("    first_name: {0}",item.Value.first_name);
        }
    }
}

public class RootObject
{
    [JsonProperty(PropertyName = "data")]
    public Dictionary<string,DataItem> DataItems { get; set; }
}

public class DataItem
{
    public string id { get; set; }
    public string email { get; set; }
    public string first_name { get; set; }
}

这是输出:

enter image description here

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读