我正在学习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);
}
}
答案 0 :(得分:1)
Console.WriteLine(p1)
未显示JSON。实际上,它会调用ToString()
上的p1
方法:
return string.Format("Name: {0} \nAge: {1}", name, age);
并将结果输出到控制台。 ToString()
可以返回您想要的任何内容。
关于您的原始问题,这种序列化的目的是将对象的状态保存为基于文本的,人类可读的形式,然后创建一个稍后具有该对象的对象州。 ToString
方法与此无关,除了为您提供查看状态的便捷方式。
在您的示例中,“state”是成员变量name
和age
的值。