C# 如何在c中将对象另存为字符串#
我有一个学生的目标C# 如何在c中将对象另存为字符串#,c#,string,object,C#,String,Object,我有一个学生的目标 Class Student { public Student() { name = "xyz"; roll = 20; age = 16; } string name; int roll; int age; } Class Service { Student student = new Student(); string s = ??? // what I have to do for getting stri
Class Student
{
public Student()
{
name = "xyz";
roll = 20;
age = 16;
}
string name;
int roll;
int age;
}
Class Service
{
Student student = new Student();
string s = ???
// what I have to do for getting string like {"name" : "xyz", "roll" : 20, "age" :16}
}
我需要上面对象中的字符串
如果我序列化对象,我会得到一些转义序列
任何帮助都是值得感激的
这是一个简化的示例,请使用Vsevolod-Goloviznin回答。这样更好
只需使用toString()
向类中的toString()添加重载以获得漂亮的打印效果。我个人的偏好是输出JSON
Class Student
{
public Student()
{
name = "xyz";
roll = 20;
age = 16;
}
public override string toString(){
return "{name: " + name + ", roll: " + roll + ", age: " + age + "}";
}
string name;
int roll;
int age;
}
示例中的字符串是JSON。你可以用 要序列化:
字符串s=JsonConvert.SerializeObject(学生) 看起来您真正想要的是将对象序列化为
JSON
这可以通过以下库轻松完成:
Student student = new Student();
var s = JsonConvert.Serialize(student);
如果您在多个位置需要此功能,您可以创建扩展方法或覆盖Student
类的ToString
方法:
public class Student
{
public override string ToString()
{
return JsonConvert.Serialize(this);
}
}
您似乎想要将其序列化为JSON,签出并使用它调用
string s=JsonConvert.SerializeObject(student)代码>重写学生类的ToString()方法
差不多
public override string ToString()
{
return string.Format("Name: {0}, Roll: {1}, Age: {2}", name, roll, age);
}
你必须序列化你的对象。例如,使用JavaScriptSerializer:
string s = new JavaScriptSerializer().Serialize(student);
别忘了添加以下内容
using System.Web.Script.Serialization;
在那里添加一个public override ToString()函数,您可以返回一个字符串,您可以根据需要对其进行格式化。听起来您只需要JSON。在Json.NET包中尝试JsonConvert.SerializeObject
。否则,如果您试图漂亮地打印某些内容,只需将格式字符串与string.format
一起使用即可。如果我添加了相同的格式字符串,它将返回Student@Magic-鼠标为什么不用String.Format呢?它使它更具可读性,但也更容易理解handle@chouaib我想我是太挑剔或太小心了。但我想,如果一个人不知道如何覆盖toString。我会尽可能使响应更基本,因此只使用concat字符串,而不是使用可能令人困惑的函数。不,这根本不会降低您的答案的价值,我只是觉得它比简单的格式更令人困惑,口味是不争的:)+对于覆盖部分:我自己学习了String.Format
在我知道override
是什么之前:)请不要预先判断,这里+1@override
是一个java注释@satishkumarV只是在用C#表示字符串时,双引号被转义。如果您将其写入文件,斜杠将消失
using System.Web.Script.Serialization;