空JSON对象([{},{},..])被写入文件

时间:2014-02-12 18:22:43

标签: c# json serialization javascriptserializer

我试图给json写一个简单的列表。

没有错误,执行正常,但我得到了这个输出

[{},{},{}]

这是我的代码片段。 studentList是Student class的对象列表。

    public void jsonRead()
    {
        string json = File.ReadAllText(Environment.CurrentDirectory + @"\JSON.txt");

        studentList= new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<List<Student>>(json);
    }

    public void jsonWrite()
    {

            string json = new System.Web.Script.Serialization.JavaScriptSerializer().Serialize(studentList);

            File.WriteAllText(Environment.CurrentDirectory + @"\JSON.txt", json);

    }

学生班

class Student : IComparable
{
    private String regID {get;set;}   
    private String name {get;set;}      
    private String address {get;set;}      
    private String gender {get;set;}      
    private Double gpa {get;set;}

    public Student()
    {
        regID = null;
        name = null;
        address = null;
        gender = null;
        gpa = 0.0;
    }
    public Student(String regID, String name, String address, String gender, Double gpa)
    {
        this.regID = regID;
        this.name = name;
        this.address = address;
        this.gender = gender;
        this.gpa = gpa;
    }

    public void update(String regID, String name, String address, String gender, Double gpa)
    {
        setRegId( regID);
        setName(name);
        setAddress(address);
        setGender(gender);
        setGpa(gpa);
    }

其次是setter和getters

2 个答案:

答案 0 :(得分:2)

找到了解决方案。不知道它是否是正确的方法,但我只是将所有数据成员公开。它起作用了

答案 1 :(得分:1)

这绝对是正确答案!好极了!但是要找到什么 PAIN ! Google不允许您搜索“[{}]”等字符串。 我发现即使部分保护也会阻止序列化程序写出文本。例如(在C#中):

public String Notes {private set; get}

让“笔记”无法触及。 这也是序列化XML的解决方案,而不仅仅是JSON。