如何在C#中将对象保存为字符串

How to save object as string in c#

我有一个学生对象

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

我需要上述对象的字符串。

如果我序列化对象,我会得到一些带有转义序列的东西。

如有任何帮助,我们将不胜感激。

This is a simplified example, use Vsevolod Goloviznin answer. It is better.

只需使用 toString();

string s = stuident.toString();

在 class 中为 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。您可以使用 http://www.newtonsoft.com/jsont 序列化: 字符串 s = JsonConvert.SerializeObject(学生);

看起来您真正想要的是将您的对象序列化为 JSON

这可以通过 JSON.NET 库轻松完成,如下所示:

Student student = new Student();
var s = JsonConvert.Serialize(student);

如果您在多个地方需要它,您可以创建一个扩展方法或覆盖 Student class 的 ToString 方法:

public class Student
{
     public override string ToString()
     {
          return JsonConvert.Serialize(this);
     }
}

您似乎想将其序列化为 JSON,查看 http://www.newtonsoft.com/json 并使用它来调用 string s = JsonConvert.SerializeObject(student);

覆盖 Student 的 ToString() 方法 class

类似

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;