2014-02-12 43 views
4

即時嘗試寫一個簡單的列表json。空的JSON對象([{},{},..])被寫入文件

沒有錯誤,執行罰款,但我得到這個輸出

[{},{},{}] 

這裏是我的代碼片段。 studentList是Student類的對象列表。

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); 
    } 

其次是getter和setter方法

+0

對象沒問題。我在我的代碼中打印列表。顯示一切。該json.txt無關,在它雖然 –

+0

哦,我看到,它的第二個一個 –

+0

我想你已經回答了什麼,在輸出 –

回答

2

找到了解決辦法。不知道它是否正確,但我只是將所有數據成員公開。它的工作

+0

是的,那*是正確的做法。 – user2864740

1

這是絕對正確的答案!好極了!但是什麼疼痛找到! Google不允許您搜索諸如「[{}]」之類的字符串。我發現即使部分保護也會阻止序列化程序寫出文本。例如(在C#中):

public String Notes {private set; get} 

將'Notes'放在遙遠的地方。 這也是序列化XML的解決方案,不僅僅是JSON。