Migrate from Newtonsoft.Json to System.Text.Json

This commit is contained in:
ChsBuffer
2021-03-01 16:39:11 +08:00
parent 74aa072d9b
commit 5225a98581
20 changed files with 158 additions and 141 deletions

View File

@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using System.Text.RegularExpressions;
using System.Web;
using Netch.Controllers;
@@ -8,8 +9,6 @@ using Netch.Models;
using Netch.Servers.Shadowsocks.Form;
using Netch.Servers.Shadowsocks.Models.SSD;
using Netch.Utils;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Netch.Servers.Shadowsocks
{
@@ -25,10 +24,7 @@ namespace Netch.Servers.Shadowsocks
public string[] UriScheme { get; } = {"ss", "ssd"};
public Server ParseJObject(in JObject j)
{
return j.ToObject<Shadowsocks>();
}
public Type ServerType { get; } = typeof(Shadowsocks);
public void Edit(Server s)
{
@@ -80,7 +76,7 @@ namespace Netch.Servers.Shadowsocks
public IEnumerable<Server> ParseSsdUri(string s)
{
var json = JsonConvert.DeserializeObject<Main>(ShareLink.URLSafeBase64Decode(s.Substring(6)));
var json = JsonSerializer.Deserialize<Main>(ShareLink.URLSafeBase64Decode(s.Substring(6)));
return json.servers.Select(server => new Shadowsocks
{

View File

@@ -6,7 +6,6 @@ using Netch.Models;
using Netch.Servers.Shadowsocks;
using Netch.Servers.ShadowsocksR.Form;
using Netch.Utils;
using Newtonsoft.Json.Linq;
namespace Netch.Servers.ShadowsocksR
{
@@ -22,10 +21,7 @@ namespace Netch.Servers.ShadowsocksR
public string[] UriScheme { get; } = {"ssr"};
public Server ParseJObject(in JObject j)
{
return j.ToObject<ShadowsocksR>();
}
public Type ServerType { get; } = typeof(ShadowsocksR);
public void Edit(Server s)
{

View File

@@ -4,7 +4,6 @@ using System.Linq;
using Netch.Controllers;
using Netch.Models;
using Netch.Servers.Socks5.Form;
using Newtonsoft.Json.Linq;
namespace Netch.Servers.Socks5
{
@@ -20,10 +19,7 @@ namespace Netch.Servers.Socks5
public string[] UriScheme { get; } = { };
public Server ParseJObject(in JObject j)
{
return j.ToObject<Socks5>();
}
public Type ServerType { get; } = typeof(Socks5);
public void Edit(Server s)
{

View File

@@ -1,9 +1,9 @@
using System.Collections.Generic;
using System.IO;
using System.Text.Json;
using Netch.Controllers;
using Netch.Models;
using Netch.Servers.Trojan.Models;
using Newtonsoft.Json;
namespace Netch.Servers.Trojan
{
@@ -39,13 +39,7 @@ namespace Netch.Servers.Trojan
if (!string.IsNullOrWhiteSpace(server.Host))
trojanConfig.ssl.sni = server.Host;
File.WriteAllText("data\\last.json",
JsonConvert.SerializeObject(trojanConfig,
Formatting.Indented,
new JsonSerializerSettings
{
NullValueHandling = NullValueHandling.Ignore
}));
JsonSerializer.SerializeAsync(File.Create("data\\last.json"), trojanConfig, Global.NewDefaultJsonSerializerOptions);
StartInstanceAuto("-c ..\\data\\last.json");
}

View File

@@ -5,7 +5,6 @@ using System.Web;
using Netch.Controllers;
using Netch.Models;
using Netch.Servers.Trojan.Form;
using Newtonsoft.Json.Linq;
namespace Netch.Servers.Trojan
{
@@ -21,10 +20,7 @@ namespace Netch.Servers.Trojan
public string[] UriScheme { get; } = {"trojan"};
public Server ParseJObject(in JObject j)
{
return j.ToObject<Trojan>();
}
public Type ServerType { get; } = typeof(Trojan);
public void Edit(Server s)
{

View File

@@ -1,8 +1,8 @@
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Netch.Models;
using Netch.Servers.V2ray.Models;
using Newtonsoft.Json;
using V2rayConfig = Netch.Servers.V2ray.Models.V2rayConfig;
namespace Netch.Servers.V2ray.Utils
@@ -19,9 +19,7 @@ namespace Netch.Servers.V2ray.Utils
outbound(server, mode, ref v2rayConfig);
return JsonConvert.SerializeObject(v2rayConfig,
Formatting.Indented,
new JsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore});
return JsonSerializer.Serialize(v2rayConfig, Global.NewDefaultJsonSerializerOptions);
}
private static void inbound(Server server, ref V2rayConfig v2rayConfig)

View File

@@ -1,8 +1,8 @@
using System;
using System.Collections.Generic;
using Netch.Controllers;
using Netch.Models;
using Netch.Servers.V2ray;
using Newtonsoft.Json.Linq;
namespace Netch.Servers.VLESS
{
@@ -18,10 +18,7 @@ namespace Netch.Servers.VLESS
public string[] UriScheme { get; } = {"vless"};
public Server ParseJObject(in JObject j)
{
return j.ToObject<VLESS>();
}
public Type ServerType { get; } = typeof(VLESS);
public void Edit(Server s)
{

View File

@@ -1,12 +1,13 @@
using System;
using System.Collections.Generic;
using System.Text.Encodings.Web;
using System.Text.Json;
using Netch.Controllers;
using Netch.Models;
using Netch.Servers.V2ray;
using Netch.Servers.V2ray.Models;
using Netch.Servers.VMess.Form;
using Netch.Utils;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
namespace Netch.Servers.VMess
{
@@ -22,10 +23,7 @@ namespace Netch.Servers.VMess
public string[] UriScheme { get; } = {"vmess"};
public Server ParseJObject(in JObject j)
{
return j.ToObject<VMess>();
}
public Type ServerType { get; } = typeof(VMess);
public void Edit(Server s)
{
@@ -43,20 +41,24 @@ namespace Netch.Servers.VMess
{
var server = (VMess) s;
var vmessJson = JsonConvert.SerializeObject(new
{
v = "2",
ps = server.Remark,
add = server.Hostname,
port = server.Port,
id = server.UserID,
aid = server.AlterID,
net = server.TransferProtocol,
type = server.FakeType,
host = server.Host,
path = server.Path,
tls = server.TLSSecureType
});
var vmessJson = JsonSerializer.Serialize(new V2rayNSharing
{
v = "2",
ps = server.Remark,
add = server.Hostname,
port = server.Port.ToString(),
id = server.UserID,
aid = server.AlterID.ToString(),
net = server.TransferProtocol,
type = server.FakeType,
host = server.Host,
path = server.Path,
tls = server.TLSSecureType
},
new JsonSerializerOptions
{
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping
});
return "vmess://" + ShareLink.URLSafeBase64Encode(vmessJson);
}
@@ -76,7 +78,7 @@ namespace Netch.Servers.VMess
V2rayNSharing vmess;
try
{
vmess = JsonConvert.DeserializeObject<V2rayNSharing>(ShareLink.URLSafeBase64Decode(text.Substring(8)));
vmess = JsonSerializer.Deserialize<V2rayNSharing>(ShareLink.URLSafeBase64Decode(text.Substring(8)));
}
catch
{