簡體   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