我有一个学生的对象
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}
}
我需要来自上述对象的字符串。
如果我序列化对象,我会得到一些包含转义序列的东西。
任何帮助都会非常明显。
答案 0 :(得分:7)
您真正想要的是将对象序列化为JSON
。
这可以通过JSON.NET库轻松完成,如下所示:
Student student = new Student();
var s = JsonConvert.Serialize(student);
如果您需要在多个地方使用此功能,则可以创建扩展方法或覆盖ToString
类的Student
方法:
public class Student
{
public override string ToString()
{
return JsonConvert.Serialize(this);
}
}
答案 1 :(得分:4)
您必须序列化您的对象。例如,使用JavaScriptSerializer:
string s = new JavaScriptSerializer().Serialize(student);
不要忘记使用
添加以下内容using System.Web.Script.Serialization;
答案 2 :(得分:3)
这是一个简化的例子,使用 Vsevolod Goloviznin 回答。它更好。
只需使用toString();
string s = stuident.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;
}
答案 3 :(得分:2)
覆盖Student类的ToString()方法
类似
public override string ToString()
{
return string.Format("Name: {0}, Roll: {1}, Age: {2}", name, roll, age);
}
答案 4 :(得分:1)
示例中的字符串是JSON。你可以使用http://www.newtonsoft.com/jsont 序列化: string s = JsonConvert.SerializeObject(student);
答案 5 :(得分:1)
您似乎想要将其序列化为JSON,请查看http://www.newtonsoft.com/json并使用它来调用string s = JsonConvert.SerializeObject(student);