繁体   English   中英

不确定如何定义C#类以处理具有可变属性名称的JSON

[英]Unsure how to define a C# class to handle JSON with variable property names

我正在调用一个REST API,以以下格式返回其数据:

{
    "facets": [
        {
            "M": 100
        },
        {
            "F": 210
        }
    ]
}

我不确定如何定义映射到此JSON的C#类,因为M / F属性名称可以是任何东西。 目前这是性别的一个方面,但是对于其他语言(例如语言),可能是“英语”,“西班牙语”,“日语”等。理想情况下,我希望使用字典。

键可以变化的地方,使用字典来表示对象:

public class Criteria
{
    public List<Dictionary<string, int>> facets { get; set; }
}

(如果字典值不总是int ,则使用object 。)

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

这就是我使用json.net进行序列化和反序列化的方式:

public static bool SerializeStudentsFile(string fileStorageLoc) 
{
    var jsonStudents = JsonConvert.SerializeObject(StudentsList);
    System.IO.File.WriteAllText(fileStorageLoc, jsonStudents);
    return true;
}

public static List<Student> DeserializeStudentsFile()
{
    List<Student> studentList;
    if (!System.IO.File.Exists(STUDENTS_FILENAME))
    {
        var studentFile = System.IO.File.Create(STUDENTS_FILENAME);
        studentFile.Close();
    }

    var studentContentsFile = System.IO.File.ReadAllText(STUDENTS_FILENAME);
    var studentContentsFileDeserialized = JsonConvert.DeserializeObject<List<Student>>(studentContentsFile);

    if (null != studentContentsFileDeserialized) return studentContentsFileDeserialized;

    studentList = new List<Student>();
    return studentList;
}

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM