【问题标题】:Populating JSON to C# Class and vice versa [closed]将 JSON 填充到 C# 类,反之亦然 [关闭]
【发布时间】:2017-04-14 22:15:28
【问题描述】:

我有一个来自现有 REST API 的 JSON 结构,用于使用 Newtonsoft.Json (JSON.Net) 填充不同的类。

我想创建一个向导来填充相同的 REST API JSON 结构。

我遇到的问题是我的类命名约定与 API JSON 命名约定不同。

我的问题是:我应该使用与 REST API JSON 结构相同的命名约定来创建我的类以使用 jsonconvert.serializeobject,还是应该只创建一个与 JSON 结构匹配的 JSON 字符串?

【问题讨论】:

    标签: json class serialization json.net


    【解决方案1】:

    我会提供第三种选择。您可以使用 [JsonProperty] 属性标记您的类属性,以将它们与不同名称的 JSON 属性匹配。通过这种方式,您无需更改 JSON 或类中的命名约定。这是一个简单的例子:

    JSON:

    {
        "item-identifier": 1234,
        "item-name": "foo"
    }
    

    类定义:

    public class Item
    {
        [JsonProperty("item-identifier")]
        public int Id { get; set; }
    
        [JsonProperty("item-name")]
        public string Name { get; set; }
    }
    

    反序列化:

    Item item = JsonConvert.DeserializeObject<Item>(json);
    

    小提琴:https://dotnetfiddle.net/bwa1SM

    【讨论】:

    • 非常感谢布赖恩。像魅力一样工作。
    • 我只想为其他读者添加排除您可以添加的属性 [JsonIgnore]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 1970-01-01
    • 2014-03-21
    • 1970-01-01
    • 2018-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多