【问题标题】:Dynamic keys in JSONJSON 中的动态键
【发布时间】:2020-05-25 10:49:04
【问题描述】:

首先我不确定“动态键”是否是正确的术语,但我的问题是以下一个。

当前 json:

{
  "Entered": "2012-08-18T13:26:37.7137482-10:00",
  "AlbumName": "Dirty Deeds Done Dirt Cheap",
  "Artist": "AC/DC",
  "YearReleased": 1976,
  "Songs": [
    {
      "SongName": "Dirty Deeds Done Dirt Cheap",
      "SongLength": "4:11"
    },
    {
      "SongName": "Love at First Feel",
      "SongLength": "3:10"
    }
  ]
}

新的:

{
  "Entered": "2012-08-18T13:26:37.7137482-10:00",
  "AlbumName": "Dirty Deeds Done Dirt Cheap",
  "Artist": "AC/DC",
  "YearReleased": 1976,
  "Songs": {
    "Dirty Deeds Done Dirt Cheap": {
                                    "SongLength": "4:11"
                                   },
    "Love at First Feel": {
                           "SongLength": "3:10"
                          }
  }
}

我的问题是模型应该是什么样子以及如何动态更改键名?

public class CD
    {
        public DateTime Entered { get; set; }
        public string AlbumName { get; set; }
        public string Artist { get; set; }
        public int YearReleased { get; set; }
        public List<Song> Songs { get; set; }
    }
public class Song
    {
        public string Name {get;set;}
        public string Length {get;set;}
    }

【问题讨论】:

  • “新的”中的Songs 真的没有作为数组给出吗?

标签: c# json rest asp.net-core


【解决方案1】:

对于您的新 json 格式,您需要将数据结构更改为 Dictionary。

所以不是列表:

public List<Song> Songs { get; set; }

改成

public Dictionary<string, Song> Songs { get; set; }

我假设你的钥匙是独一无二的。

我已经测试过了,它可以工作。

【讨论】:

    猜你喜欢
    • 2021-05-18
    • 1970-01-01
    • 2020-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-27
    • 2013-07-16
    相关资源
    最近更新 更多