我正在调用REST api,它以下列格式返回数据:
{
"facets": [
{
"M": 100
},
{
"F": 210
}
]
}
我不确定如何定义映射到此JSON的C#类,因为M / F属性名称可以是任何内容。这是目前性别的一个方面,但对于其他类似语言的东西,它可能是“英语”,“西班牙语”,“日语”等。理想情况下,我想要像字典一样。
答案 0 :(得分:2)
如果键可以变化,请使用字典来表示对象:
public class Criteria
{
public List<Dictionary<string, int>> facets { get; set; }
}
(如果字典值不总是int
,请改用object
。)
答案 1 :(得分:-1)
这就是我使用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;
}