为什么JSON需要所有这些?

时间:2016-11-18 16:38:42

标签: c# json

我正在学习JSON并且我已经开始工作,但我想知道为什么它有效以及它是如何工作的。我很困惑为什么需要一些行以及他们做什么。

以下是我的主要cs和我的Person课程:我的印象是我使JSONstring等于JSON.json的内容。如果是这种情况,为什么我不能Writeline JSONstring并在其中添加\n来分隔线?

从我收集到的是Console.WriteLine(p1);输出p1等于反序列化的JSON。我不确定为什么需要其他代码。

// Make JSONstring = to the text in JSON.json
String JSONstring = File.ReadAllText("JSON.json");

JavaScriptSerializer ser = new JavaScriptSerializer();
Person p1 = ser.Deserialize<Person>(JSONstring);
Console.WriteLine(p1);
Console.ReadLine();

class Person
{
    public string name { get; set; }
    public int age { get; set; }

    public override string ToString()
    {
        return string.Format("Name: {0} \nAge: {1}", name, age);
    }
}

1 个答案:

答案 0 :(得分:1)

Console.WriteLine(p1)

未显示JSON。实际上,它会调用ToString()上的p1方法:

return string.Format("Name: {0} \nAge: {1}", name, age);

并将结果输出到控制台。 ToString()可以返回您想要的任何内容。

关于您的原始问题,这种序列化的目的是将对象的状态保存为基于文本的,人类可读的形式,然后创建一个稍后具有该对象的对象州。 ToString方法与此无关,除了为您提供查看状态的便捷方式。

在您的示例中,“state”是成员变量nameage的值。