剛剛下載的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:將DataSet序列化爲json
- 2. ServiceStack.Text JSON反序列化
- 3. 使用ServiceStack.Text作爲JSON序列爲SignalR
- 4. ServiceStack.Text可以將JSON反序列化爲自定義泛型類型嗎?
- 5. 將類類型序列化爲JSON?
- 6. 反序列化CSV與ServiceStack.Text
- 7. 如何在Haskell中將參數化類型序列化爲JSON?
- 8. ServiceStack.Text如何獲取要序列化的子類值?
- 9. 將類實例序列化爲JSON
- 10. 將JSON對象反序列化爲類
- 11. 將json序列化爲pojo類
- 12. 如何將UIImage序列化爲JSON?
- 13. 如何將ObjectId序列化爲JSON?
- 14. 如何將ASObject序列化爲JSON
- 15. 如何將此序列化爲JSON?
- 16. 如何將對象序列化爲JSON?
- 17. 如何將控件序列化爲JSON?
- 18. servicestack.text格式化縮進json
- 19. servicestack.text將數組反序列化爲對象
- 20. 將JSON反序列化爲?
- 21. 如何將json反序列化爲spring-boot中的抽象類
- 22. 如何將模型類數據序列化爲json
- 23. 如何在silverlight中將基類正確序列化爲JSON?
- 24. 如何將函數類型序列化爲haskell中的json?
- 25. 如何在Scalatra中將對象類型序列化爲JSON?
- 26. 如何將Json對象反序列化爲android類?
- 27. 如何將JSON反序列化爲僅「內置」類型
- 28. 如何將類序列化爲屬性?
- 29. 使用ServiceStack.Text反序列化JSON字符串反對
- 30. ServiceStack.Text json只能序列化結構屬性
導入需要注意的是,雖然你需要使用'ServiceStack;'你進口,'ToJson'方法不僅需要裁判ServiceStack還需要在您的項目中對ServiceStack.Text的引用。 – ruffin