刚刚下载的ServiceStack.Text在我的ASP.NET中使用它。我有许多属性的类,并希望将其中的五个(字符串,整数,二进制)序列化为JSON。任何人都可以发布简单的例子如何从我的类创建JSon对象?ServiceStack.Text如何将类序列化为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]属性排除单个属性。
同样,如果你想让所有属性序列化为_except_,你可以用'[IgnoreDataMember]'来装饰属性,但是你不应该在这种情况下用'[DataContract]'装饰类,或者它不会像预期。我刚刚在一个项目中使用了ServiceStack,并很高兴地看到它的工作。 –
注意:序列化/反序列化所有公共>属性<,不包含>字段<。 –
@Quandary右键,您需要设置'JsConfig.IncludePublicFields = true;'来序列化公共字段,请参阅:http://stackoverflow.com/a/15372520/85785 – mythz
您可以使用您的自定义类,然后[Serializable()]
属性:
JavaScriptSerializer serializer = new JavaScriptSerializer();
var Json = serializer.Serialize(myObject);
要忽略的对象你序列化的特定属性,只需将[NonSerialized]
attribure他们。
更新:
既然你想使用ServiceStack做你的系列化,ServiceStack网站给出了下面的例子:
var customer = new Customer { Name="Joe Bloggs", Age=31 };
var json = JsonSerializer.SerializeToString(customer);
var fromJson = JsonSerializer.DeserializeFromString<Customer>(json);
我不想使用Microsoft序列化程序,因为它非常慢。我询问ServiceStack.Text – Tomas
如果你对ServiceStack.Text特别感兴趣,那么什么阻止你下载他们的示例项目并只是看看? –
ServiceStack网站甚至向您展示了如何使用它:http://www.servicestack.net/mythz_blog/?p=344 –
servicestack的测试证明,通过提供[DataContract]
和[DataMember]
属性,可以确定哪个正在被序列化,哪个没有。
- 1. 使用ServiceStack.Text作为JSON序列为SignalR
- 2. ServiceStack.Text序列化词典
- 3. 反序列化CSV与ServiceStack.Text
- 4. 如何在Haskell中将参数化类型序列化为JSON?
- 5. 将类实例序列化为JSON
- 6. 将json序列化为pojo类
- 7. 将JSON对象反序列化为类
- 8. 如何将此序列化为JSON?
- 9. 如何将控件序列化为JSON?
- 10. 如何将ASObject序列化为JSON
- 11. 使用ServiceStack.Text反序列化CSV与CustomHeaders
- 12. 如何将函数类型序列化为haskell中的json?
- 13. 如何将json反序列化为spring-boot中的抽象类
- 14. 如何将JSON反序列化为仅“内置”类型
- 15. 如何在silverlight中将基类正确序列化为JSON?
- 16. 如何在Scalatra中将对象类型序列化为JSON?
- 17. 不要在JSON中序列化实体框架类的引用(ServiceStack.Text库)
- 18. 如何将类序列化为属性?
- 19. ServiceStack.Text反序列化JSON总是对象转换为字符串,并用引号
- 20. 如何覆盖ServiceStack.Text中的字符串序列化?
- 21. 将列表序列化为JSON
- 22. 将列表序列化为JSON数组
- 23. 对象序列化为JSON,如何序列化属性(如XML)
- 24. 将类序列化为XML?
- 25. 如何将一般对象序列化为Json并将Json反序列化为Java中的对象
- 26. 将sqlalchemy类序列化到json
- 27. 如何将JSON对象反序列化为使用派生类的C#类?
- 28. 如何将C#空列表序列化为JSON空数组?
- 29. 如何使用jackson将json列表序列化为POJO?
- 30. 如何将此json反序列化为对象列表?
导入需要注意的是,虽然你需要使用'ServiceStack;'你进口,'ToJson'方法不仅需要裁判ServiceStack还需要在您的项目中对ServiceStack.Text的引用。 – ruffin