当前位置: 首页 > 面试题库 >

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

戚阳
2023-03-14
问题内容

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


问题答案:

默认情况下,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]属性来排除单个属性。



 类似资料:
  • 问题内容: 我需要将一些对象序列化为JSON并发送到WebService。如何使用org.json库?否则我将不得不使用另一个?这是我需要序列化的类: 我只放置了类的变量和构造函数,但也包含了getter和setter方法。所以如果有人可以帮忙 问题答案: 没有注释的简单方法是使用Gson库 就那么简单:

  • 问题内容: 我需要将一些对象序列化为JSON并发送到WebService。如何使用org.json库?否则我将不得不使用另一个?这是我需要序列化的类: 我只放了类的变量和构造函数,但也有getter和setter方法。所以如果有人可以帮忙 问题答案: 没有注释的简单方法是使用Gson库 就那么简单:

  • 问题内容: 我正在尝试创建类实例的JSON字符串表示形式并且遇到困难。假设该类的构建如下: 像这样对json.dumps进行调用: 失败了,并告诉我testclass不可JSON序列化。 我也尝试过使用pickle模块: 它提供类实例信息,但不提供类实例的序列化内容。 我究竟做错了什么? 问题答案: 基本问题是,JSON编码器仅知道默认情况下如何序列化一组有限的对象类型(所有内置类型)。在此处列出

  • 我有一个带有Object类型属性的基类型(一段遗留代码,许多项目都使用这个基类型)。后来添加了基类型的泛型版本,将属性公开为泛型类型。 使用ServiceStack.Text序列化和反序列化泛型类型将设置基类(type object)上的属性,而不是派生类上更特定的类型。 重现错误的简单控制台应用程序如下所示: 感谢任何帮助。 基于这个答案,我通过使和从一个新的抽象基类继承来解决这个问题,如下所示

  • 我正在使用xstream并尝试将列表序列化为XML。我需要一个输出结构 序列化的对象类似于 我的问题与作为对象集合的XStream-Root类似,但我希望在不使用包装对象的情况下这样做。

  • 问题内容: Django对从数据库返回到JSON格式的ORM模型具有良好的自动序列化功能。 如何将SQLAlchemy查询结果序列化为JSON格式? 我尝试过,但是它编码查询对象本身。我试过了但是回来了 将对象序列化为真的很困难吗?没有默认的序列化程序吗?如今,序列化ORM查询结果是非常常见的任务。 我需要的只是返回SQLAlchemy查询结果的JSON或XML数据表示形式。 javascript