【问题标题】:Empty JSON objects ([{},{},..]) are written to file空 JSON 对象([{},{},..])被写入文件
【发布时间】:2014-02-12 18:22:42
【问题描述】:

我正在尝试将一个简单的列表写入 json。

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

[{},{},{}]

这是我的代码的 sn-p。 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);
    }

其次是setter和getter

【问题讨论】:

  • 对象没问题。我在我的代码中打印列表。显示一切。 json.txt 里面什么都没有
  • 哦,我明白了,它是第二个
  • 我试过你回答的,输出没有区别
  • 你能发布你的Student类的样子吗?
  • jsonWrite()方法中变量“json”的内容是什么?在将其保存到文件之前?

标签: c# json serialization javascriptserializer


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    这绝对是正确的答案!耶!但是找到一个痛苦! Google 不允许您搜索诸如“[{}]”之类的字符串。 我发现即使是 部分 保护也会阻止序列化程序写出文本。例如(在 C# 中):

    public String Notes {private set; get}
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-18
      • 1970-01-01
      • 2017-06-29
      • 1970-01-01
      • 2019-11-19
      • 2018-07-14
      相关资源
      最近更新 更多