C# 使用WebClient进行JSON序列化?
我知道您可以使用C# 使用WebClient进行JSON序列化?,c#,C#,我知道您可以使用WebClient.DownloadString()从HttpWebResponse反序列化JSON对象,但反过来呢?我查看了MSDN页面,不知道是否可以序列化为JSON对象,有人知道吗?我认为在使用WebClient实例之前,您可能需要将对象序列化为JSON。希望这有帮助 var url = "..."; var json = JsonHelper.ToJson(myObject); var response = PostJson(url, json); 下面是从WebCl
WebClient.DownloadString()
从HttpWebResponse
反序列化JSON对象,但反过来呢?我查看了MSDN页面,不知道是否可以序列化为JSON对象,有人知道吗?我认为在使用WebClient实例之前,您可能需要将对象序列化为JSON。希望这有帮助
var url = "...";
var json = JsonHelper.ToJson(myObject);
var response = PostJson(url, json);
下面是从WebClient类发送JSON数据的示例:
public static string PostJson(string url, string data)
{
var bytes = Encoding.Default.GetBytes(data);
using (var client = new WebClient())
{
client.Headers.Add("Content-Type", "application/json");
var response = client.UploadData(url, "POST", bytes);
return Encoding.Default.GetString(response);
}
}
下面是一个简单的帮助器类,它使用DataContractJsonSerializer
类在JSON之间序列化/反序列化对象
public static class JsonHelper
{
public static string ToJson<T>(T instance)
{
var serializer = new DataContractJsonSerializer(typeof(T));
using (var tempStream = new MemoryStream())
{
serializer.WriteObject(tempStream, instance);
return Encoding.Default.GetString(tempStream.ToArray());
}
}
public static T FromJson<T>(string json)
{
var serializer = new DataContractJsonSerializer(typeof(T));
using (var tempStream = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
return (T)serializer.ReadObject(tempStream);
}
}
}
公共静态类JsonHelper
{
公共静态字符串ToJson(T实例)
{
var serializer=newdatacontractjsonserializer(typeof(T));
使用(var tempStream=new MemoryStream())
{
WriteObject(tempStream,instance);
返回Encoding.Default.GetString(tempStream.ToArray());
}
}
公共静态T FromJson(字符串json)
{
var serializer=newdatacontractjsonserializer(typeof(T));
使用(var tempStream=newmemoryStream(Encoding.Unicode.GetBytes(json)))
{
return(T)serializer.ReadObject(tempStream);
}
}
}
我使用:
var json = new JavaScriptSerializer().Serialize(yourObject);
是的,但我想问一下这里的WebClient对象。我试图弄清楚这是否可能,但没有看到任何关于该对象能够序列化的内容…仅进行反序列化。您能否提供一些示例伪代码,显示您试图对WebClient类执行的操作?序列化JSON,以便我可以通过HttpRequest发送它,以供使用,例如.ascx,甚至是在.NET之外。我只是想知道是否有可能,仅此而已。我没有办法。我已经更新了我的答案,希望这能有所帮助。