小编典典

ServiceStack.Text如何将类序列化为JSon

json

刚刚下载了ServiceStack.Text以在我的ASP.NET中使用它。我有很多属性的类,想将其中的五个(字符串,整数,二进制)序列化为JSON。有人可以发布简单的示例如何从我的课程中创建JSon对象吗?


阅读 270

收藏
2020-07-27

共1个答案

小编典典

默认情况下,ServiceStack将反序列化POCO的所有公共属性。

如果只想序列化一些属性,则想用[DataContract],[DataMember]属性装饰类(与使用MS
DataContractJsonSerializer的方式相同),例如:

[DataContract]
public class MyClass
{
    public string WillNotSerializeString { get; set; }

    [DataMember]
    public string WillSerializeString { get; set; }

    [DataMember]
    public int WillSerializeInt { get; set; }

    [DataMember]
    public byte[] WillSerializeByteArray { get; set; }
}

然后,您可以使用JsonSerializer上的静态实用工具方法对其进行(反)序列化,也可以使用更简洁的扩展方法,例如:

var dto = new MyClass { WillSerializeString = "some text" };
string json = dto.ToJson();
MyClass fromJson = json.FromJson<MyClass>();

编辑:

正如@Noah提到的(从注释中),您还可以使用[IgnoreDataMember]属性来排除单个属性。

2020-07-27