Json.NET能否对流进行序列化/反序列化?我听说Json.NET比DataContractJsonSerializer更快,想试一试......但我在JsonConvert上找不到任何采用流而不是字符串的方法。例如,为了在WinPhone上反序列化包含JSON的文件,我使用以下代码将文件内容读入字符串,然后反序列化为JSON。在我的(非常临时)测试中,使用DataContractJsonSerializer直接从流中反序列化似乎要慢4倍...// DCJSDataContractJsonSerializer dc = new DataContractJsonSerializer(typeof(Constants));Constants constants = (Constants)dc.ReadObject(stream);// JSON.NETstring json = new StreamReader(stream).ReadToEnd();Constants constants = JsonConvert.DeserializeObject<Constants>(json);我做错了吗?
3 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
public static void Serialize(object value, Stream s){
using (StreamWriter writer = new StreamWriter(s))
using (JsonTextWriter jsonWriter = new JsonTextWriter(writer))
{
JsonSerializer ser = new JsonSerializer();
ser.Serialize(jsonWriter, value);
jsonWriter.Flush();
}}public static T Deserialize<T>(Stream s){
using (StreamReader reader = new StreamReader(s))
using (JsonTextReader jsonReader = new JsonTextReader(reader))
{
JsonSerializer ser = new JsonSerializer();
return ser.Deserialize<T>(jsonReader);
}}- 3 回答
- 0 关注
- 362 浏览
添加回答
举报
0/150
提交
取消
