我正在處理客戶端編程,我想將一個javascript對象轉換爲c#對象,以便將其保存在數據庫中。 有沒有什麼方法可以達到這個目的? 感謝將javascript對象轉換爲c#對象
回答
的javascript:
var obj = {id:0,userName:'Bill'};
C#, 定義類:
public class myClass
{
public int id;
public string userName;
}
然後運OBJ到服務器(例如使用AJAX請求)和反序列化,當您需要使用對象時
myClass obj = (new JavascriptSerializer()).Deserialize<myClass>(objJson);
但是你可以不反序列化和存儲objJson字符串做數據庫
首先,你需要將JSON對象傳遞給服務器端可能使用代碼Web服務後面,那麼你可以試試這個真棒庫:
最大的障礙你」無論您決定使用哪種序列化/反序列化技術,都必須在這裏克服,就是您將如何將JSON字符串從客戶端傳遞到您可以使用它的代碼。爲此,我建議使用jQuery的AJAX功能。 This article證明無價的對我,當我正在學習如何從客戶端傳遞信息
.NET內置JSON序列化/反序列化,不需要第三方庫。添加System.Web.Extensions,你可以在System.Web.Script.Serialization.JavaScriptSerializer找到它。 – Matt
是的,但Json.NET公開了很多其他非常有用的功能,比如LINQ to JSON。誠然,如果他只是直接轉換到現有的類,這將工作得很好,但我認爲這是值得一提的 –
JavascriptSeriaizer(以我的經驗)幾乎不像DataContractJsonSerializer那樣健壯。在DataContractJsonSerializer存在之前,我會推薦類似JSON.net的東西,但現在不行了。 – mckeejm
對於這個解決方案工作,你需要用T表示類型爲裝飾有DataContract和DataMember屬性的類型。 DataContractJsonSErializer比JavascriptSerializer更好。這是來自我爲C#REST客戶端編寫的一些代碼。它確實展示瞭如何一般序列化和反序列化。包含的示例對象
[DataContract]
public SampleObject
{
[DataMember("MyProperty")]
public string MyProperty {get;set;}
}
private static byte[] SerializeRequest<T>(string contentType, T request)
{
using (MemoryStream requestObjectStream = new MemoryStream())
{
if (contentType == "applicaton/json")
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
serializer.WriteObject(requestObjectStream, request);
}
else if (contentType == "application/xml")
{
DataContractSerializer serializer = new DataContractSerializer(typeof(T));
serializer.WriteObject(requestObjectStream, request);
}
else
{
throw new Exception("invalid contentType");
}
requestObjectStream.Position = 0;
return requestObjectStream.ToArray();
}
}
private static T DeserializeResponse<T>(string acceptHeader, string responseString)
{
if (acceptHeader == "applicaton/json")
{
DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(T));
MemoryStream responseObjectStream = new MemoryStream(Encoding.UTF8.GetBytes(responseString));
return (T)serializer.ReadObject(responseObjectStream);
}
else if (acceptHeader == "application/xml")
{
DataContractSerializer serializer = new DataContractSerializer(typeof(T));
MemoryStream responseObjectStream = new MemoryStream(Encoding.UTF8.GetBytes(responseString));
return (T)serializer.ReadObject(responseObjectStream);
}
return default(T);
}
- 1. 將javascript對象轉換爲json對象
- 2. 將JSON對象轉換爲C#對象
- 3. 將C#對象轉換爲JSON或Javascript對象
- 4. 無法將大型Javascript對象轉換爲C#對象
- 5. Javascript:將對象的對象轉換爲對象數組
- 6. 將Javascript對象轉換成jquery對象?
- 7. 轉換JSON對象爲C#對象
- 8. 將JavaScript數組轉換爲JavaScript對象
- 9. 將javascript對象從javascript轉換爲JSON
- 10. 將長對象轉換爲對象
- 11. 將Image對象轉換爲BufferedImage對象
- 12. 將對象轉換爲String []對象..?
- 13. 將TS對象轉換爲data.frame對象
- 14. 將對象數組轉換爲對象
- 15. 將對象轉換爲jquery對象
- 16. 將Image對象轉換爲FormFile對象
- 17. 將jcas對象轉換爲json對象
- 18. 轉換對象爲對象
- 19. 將PDO對象轉換爲Javascript JSON
- 20. JavaScript將秒轉換爲日期對象
- 21. 將javascript對象轉換爲url查詢
- 22. 將PHP數組轉換爲JavaScript對象
- 23. 將JavaScript窗口對象轉換爲JSON
- 24. Javascript:將SHA512值轉換爲JSON對象
- 25. 將session.lastAccessedTime轉換爲javascript日期對象
- 26. 將JavaScript數組轉換爲JSON對象
- 27. 如何將php對象轉換爲javascript?
- 28. 將JSON轉換爲JavaScript對象數組
- 29. 將java向量轉換爲javascript對象
- 30. 將JavaScript數組轉換爲java對象
要使用它,他必須首先學習如何將JSON字符串傳遞給服務器端 –