奇怪的 JSON C# 的解析情况

Weird JSON Parsing situation with C#

我有一个客户的 JSON 有一个非常奇怪的情况。他们发送一个名为 ID(这是一个数字)的对象数组:

而不是允许简单解析的预期对象名称,例如“amenity”。

我们如何将其解析为包含 ID 和名称的对象列表?这是确切的 JSON 文本:

“便利设施”:{ “2194”:{ “编号”:“2194”, "name":"两人早餐" }, “2192”:{ “编号”:“2192”, “名称”:“免费WiFi” } }

还有其他情况,当我们有更多字段时,不仅是每个对象中的 id 和名称

“便利设施”:{ “2194”:{ “编号”:“2194”, "name":"两人早餐", “有效期”:“2022-10-30” }, “2192”:{ “编号”:“2192”, "name":"免费WiFi", “有效期”:“2022-10-30” } }

谢谢大家!!!

您需要两个 class,一个是 json 将被转换成的主要 (Class1),另一个是数组中对象的 class(Class2) .然后就可以将main中的字典转换成字典的Class2值列表。

    public class MyClass1{
        public Dictionary<string,MyClass2> amenities;
    }
    public class MyClass2{
        public string id;
        public string name;
        public string validto;
    }

先反序列化成MyClass1,再从Dictionary中取出Values,转成List。

List<MyClass2> list = JsonConvert.DeserializeObject<MyClass1>(jsonstring).amenities.Values.ToList()