DefaultJsonSerializer.cs
1.57 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.Encodings.Web;
using System.Text.Json;
using System.Text.Unicode;
namespace Pole.Core.Serialization
{
public class DefaultJsonSerializer : ISerializer
{
static readonly JsonSerializerOptions options = new JsonSerializerOptions() { Encoder = JavaScriptEncoder.Create(UnicodeRanges.All) };
public T Deserialize<T>(string json) where T : class, new()
{
return JsonSerializer.Deserialize<T>(json);
}
public object Deserialize(byte[] bytes, Type type)
{
return JsonSerializer.Deserialize(bytes, type);
}
public string Serialize<T>(T data) where T : class, new()
{
return JsonSerializer.Serialize(data, options);
}
public string Serialize(object data, Type type)
{
return JsonSerializer.Serialize(data, type, options);
}
public byte[] SerializeToUtf8Bytes<T>(T data) where T : class, new()
{
return JsonSerializer.SerializeToUtf8Bytes(data, data.GetType(), options);
}
public T Deserialize<T>(byte[] bytes) where T : class, new()
{
return JsonSerializer.Deserialize<T>(bytes);
}
public byte[] SerializeToUtf8Bytes(object data, Type type)
{
return JsonSerializer.SerializeToUtf8Bytes(data, type, options);
}
public object Deserialize(string json, Type type)
{
return JsonSerializer.Deserialize(json, type);
}
}
}