The*_*ask 8 .net c# json javascriptserializer
我正在寻找一个示例代码/ lib来使用C#解码JSON字符串.
编码我可以这样做:
var data = new Dictionary<string,string>();
data.Add("..", "...");
var json_encoded = new JavaScriptSerializer().Serialize(data);
Run Code Online (Sandbox Code Playgroud)
但我怎么解码?
var json_decoded = ??
Run Code Online (Sandbox Code Playgroud)
Kak*_*shi 11
你可以这样做:
var data = new Dictionary<string, string>();
data.Add("foo", "baa");
JavaScriptSerializer ser = new JavaScriptSerializer();
var JSONString = ser.Serialize(data); //JSON encoded
var JSONObj = ser.Deserialize<Dictionary<string, string>>(JSONString); //JSON decoded
Console.Write(JSONObj["foo"]); //prints: baa
Run Code Online (Sandbox Code Playgroud)
这将采用JSON并将其转换为您指定的强类型类(T)
public static T Deserialize<T>(string json)
{
var obj = Activator.CreateInstance<T>();
using(var ms = new MemoryStream(Encoding.Unicode.GetBytes(json)))
{
var serializer = new DataContractJsonSerializer(obj.GetType());
obj = (T) serializer.ReadObject(ms);
return obj;
}
}
Run Code Online (Sandbox Code Playgroud)
这将采用一个类并将其序列化为JSON
public static string Serialize<T>(T obj)
{
var serializer = new DataContractJsonSerializer(obj.GetType());
using (var ms = new MemoryStream())
{
serializer.WriteObject(ms, obj);
return Encoding.Default.GetString(ms.ToArray());
}
}
Run Code Online (Sandbox Code Playgroud)
注意:在第一个示例中,您将需要一个支持类来指定类型T.因此,如果您告诉它T类型,User您需要在某处指定:
public class User
{
public string Username { get; set; }
public string Firstname { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
29257 次 |
| 最近记录: |