简体   繁体   English

Newtonsoft json - 反序列化具有相同名称但属性不同的类

[英]Newtonsoft json - deserialize classes with same name, but different properties

I am consuming a REST API - which returns JSON.我正在使用 REST API - 它返回 JSON。 I deserialize the JSON using NewtonSOFT JSON in C#.我在 C# 中使用 NewtonSOFT JSON 反序列化 JSON。

The returned JSON contanins an "Answer" object that contain another "Answer" object - problem is that the 2 "Answer" objects has different properties / definitions.返回的 JSON 包含一个“答案”object,其中包含另一个“答案”object - 问题是 2 个“答案”对象具有不同的定义/

How can that be handled in C# or in NewtonSoft?如何在 C# 或 NewtonSoft 中处理?

Json structure Json结构

"answers": [
                {
                    "tag": {
                        "id": 803,
                        "name": "Oplysninger om bestilling af tilstandsrapporten"
                    },
                    "option": false,
                    "answers": [
                        {
                            "label": "Vælg",
                            "value": "Ved hjælp af familie, venner eller bekendte mv",
                            "show_inline": false
                        }
                    ],
                    "question": "Hvordan fandt du den bygningssagkyndige?",
                    "seller_question_id": 1
                }

"answers" here is a property name, not a class name, so all you need to do is define your classes in a way that matches the pattern you've shown.这里的“answers”是一个属性名称,而不是 class 名称,因此您需要做的就是以与您显示的模式相匹配的方式定义您的类。 Having two different properties named "answers" doesn't present any particular complication.拥有两个名为"answers"的不同属性不会带来任何特殊的复杂性。

class Response
{
    public IList<OuterAnswer> answers { get; set; }
}

class OuterAnswer
{
    public Tag tag { get; set; }
    public bool option { get; set; }
    public IList<InnerAnswer> answers { get; set; }
    public string question { get; set; }
    public long seller_question_id { get; set; }
}

class InnerAnswer
{
    public string label { get; set; }
    public string value { get; set; }
    public bool show_inline { get; set; }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 具有相同名称属性和数组的 JSON 反序列化(Newtonsoft) - JSON Deserialize (Newtonsoft) with same name properties and array Newtonsoft Json-反序列化-如果属性名称相同但属性类型不同,则自定义映射 - Newtonsoft Json - Deserialize - Custom mapping if property name is same but property type is different Newtonsoft json将复杂对象反序列化为具有不同名称的类 - Newtonsoft json Deserialize complex object into class with different name 反序列化具有不同结构和相同名称的 json object - Deserialize a json object with different structure and same name 将JSON反序列化为不同的类 - Deserialize JSON to different classes 在不同的类上反序列化 json - Deserialize json on different classes 使用 Newtonsoft.Json 将名称反序列化为值 - Deserialize a name as a value using Newtonsoft.Json 如何添加两个具有相同名称的属性,以便我们可以反序列化两种不同的JSON格式? - How to add two properties with same name so that we could be able to deserialize two different JSON formats? Newtonsoft 反序列化相同的日期返回不同的输出 - Newtonsoft deserialize a same date return different output 将具有相同名称的不同xml元素反序列化为不同的C#类 - Deserialize different xml elements with same name into different C# classes
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM