mirror of
https://github.com/project-redbud/FunGame-Core.git
synced 2025-04-21 19:49:34 +08:00
向Utility添加更多Json相关方法 (#45)
This commit is contained in:
parent
9631267010
commit
9fb45dc502
@ -1,6 +1,7 @@
|
||||
using System.Collections;
|
||||
using System.Net.NetworkInformation;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text.Json;
|
||||
using System.Text.RegularExpressions;
|
||||
using Milimoe.FunGame.Core.Library.Common.Architecture;
|
||||
using Milimoe.FunGame.Core.Library.Constant;
|
||||
@ -128,6 +129,18 @@ namespace Milimoe.FunGame.Core.Api.Utility
|
||||
return Service.JsonManager.GetString(obj);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 返回目标对象的Json字符串 可指定反序列化选项
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="obj"></param>
|
||||
/// <param name="options"></param>
|
||||
/// <returns></returns>
|
||||
public static string JsonSerialize<T>(T obj, JsonSerializerOptions options)
|
||||
{
|
||||
return Service.JsonManager.GetString(obj, options);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反序列化Json对象
|
||||
/// </summary>
|
||||
@ -139,6 +152,18 @@ namespace Milimoe.FunGame.Core.Api.Utility
|
||||
return Service.JsonManager.GetObject<T>(json);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反序列化Json对象 可指定反序列化选项
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="json"></param>
|
||||
/// <param name="options"></param>
|
||||
/// <returns></returns>
|
||||
public static T? JsonDeserialize<T>(string json, JsonSerializerOptions options)
|
||||
{
|
||||
return Service.JsonManager.GetObject<T>(json, options);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反序列化Hashtable中的Json对象
|
||||
/// </summary>
|
||||
@ -148,7 +173,20 @@ namespace Milimoe.FunGame.Core.Api.Utility
|
||||
/// <returns></returns>
|
||||
public static T? JsonDeserializeFromHashtable<T>(Hashtable hashtable, string key)
|
||||
{
|
||||
return Transmittal.DataRequest.GetHashtableJsonObject<T>(hashtable, key);
|
||||
return Service.JsonManager.GetObject<T>(hashtable, key);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反序列化Hashtable中的Json对象 可指定反序列化选项
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="hashtable"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="options"></param>
|
||||
/// <returns></returns>
|
||||
public static T? JsonDeserializeFromHashtable<T>(Hashtable hashtable, string key, JsonSerializerOptions options)
|
||||
{
|
||||
return Service.JsonManager.GetObject<T>(hashtable, key, options);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -38,6 +38,18 @@ namespace Milimoe.FunGame.Core.Service
|
||||
return JsonSerializer.Serialize(obj, GeneralOptions);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取Json字符串
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="obj"></param>
|
||||
/// <param name="options"></param>
|
||||
/// <returns></returns>
|
||||
internal static string GetString<T>(T obj, JsonSerializerOptions options)
|
||||
{
|
||||
return JsonSerializer.Serialize(obj, options);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反序列化Json对象
|
||||
/// </summary>
|
||||
@ -49,6 +61,18 @@ namespace Milimoe.FunGame.Core.Service
|
||||
return JsonSerializer.Deserialize<T>(json, GeneralOptions);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反序列化Json对象
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="json"></param>
|
||||
/// <param name="options"></param>
|
||||
/// <returns></returns>
|
||||
internal static T? GetObject<T>(string json, JsonSerializerOptions options)
|
||||
{
|
||||
return JsonSerializer.Deserialize<T>(json, options);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反序列化Json对象,此方法可能无法返回正确的类型,请注意辨别
|
||||
/// </summary>
|
||||
@ -59,6 +83,18 @@ namespace Milimoe.FunGame.Core.Service
|
||||
return JsonSerializer.Deserialize<object>(json, GeneralOptions);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反序列化Json对象,此方法可能无法返回正确的类型,请注意辨别
|
||||
/// </summary>
|
||||
/// <param name="json"></param>
|
||||
/// <param name=""></param>
|
||||
/// <param name="options"></param>
|
||||
/// <returns></returns>
|
||||
internal static object? GetObject(string json, JsonSerializerOptions options)
|
||||
{
|
||||
return JsonSerializer.Deserialize<object>(json, options);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反序列化SocketObject中索引为index的Json对象
|
||||
/// </summary>
|
||||
@ -96,6 +132,28 @@ namespace Milimoe.FunGame.Core.Service
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反序列化Hashtable中Key对应的Json对象
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="table"></param>
|
||||
/// <param name="key"></param>
|
||||
/// <param name="options"></param>
|
||||
/// <returns></returns>
|
||||
internal static T? GetObject<T>(Hashtable table, string key, JsonSerializerOptions options)
|
||||
{
|
||||
if (table.ContainsKey(key))
|
||||
{
|
||||
JsonElement? element = (JsonElement?)table[key];
|
||||
if (element != null)
|
||||
{
|
||||
T? result = ((JsonElement)element).Deserialize<T>(options);
|
||||
return result;
|
||||
}
|
||||
}
|
||||
return default;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反序列化多个Json对象
|
||||
/// 注意必须是相同的Json对象才可以使用此方法解析
|
||||
@ -108,5 +166,19 @@ namespace Milimoe.FunGame.Core.Service
|
||||
json = "[" + json.Replace("}{", "},{") + "]"; // 将Json字符串转换为数组
|
||||
return JsonSerializer.Deserialize<List<T>>(json, GeneralOptions) ?? new List<T>();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 反序列化多个Json对象
|
||||
/// 注意必须是相同的Json对象才可以使用此方法解析
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="json"></param>
|
||||
/// <param name="options"></param>
|
||||
/// <returns></returns>
|
||||
internal static List<T> GetObjects<T>(string json, JsonSerializerOptions options)
|
||||
{
|
||||
json = "[" + json.Replace("}{", "},{") + "]"; // 将Json字符串转换为数组
|
||||
return JsonSerializer.Deserialize<List<T>>(json, options) ?? new List<T>();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user