mirror of
https://github.com/project-redbud/FunGame-Core.git
synced 2025-04-22 03:59:35 +08:00
新的Json处理方法 (#63)
This commit is contained in:
parent
543887881a
commit
47d9813793
@ -125,10 +125,7 @@ namespace Milimoe.FunGame.Core.Api.Utility
|
|||||||
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T"></typeparam>
|
||||||
/// <param name="obj"></param>
|
/// <param name="obj"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static string JsonSerialize<T>(T obj)
|
public static string JsonSerialize<T>(T obj) => Service.JsonManager.GetString(obj);
|
||||||
{
|
|
||||||
return Service.JsonManager.GetString(obj);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 返回目标对象的Json字符串 可指定反序列化选项
|
/// 返回目标对象的Json字符串 可指定反序列化选项
|
||||||
@ -137,10 +134,7 @@ namespace Milimoe.FunGame.Core.Api.Utility
|
|||||||
/// <param name="obj"></param>
|
/// <param name="obj"></param>
|
||||||
/// <param name="options"></param>
|
/// <param name="options"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static string JsonSerialize<T>(T obj, JsonSerializerOptions options)
|
public static string JsonSerialize<T>(T obj, JsonSerializerOptions options) => Service.JsonManager.GetString(obj, options);
|
||||||
{
|
|
||||||
return Service.JsonManager.GetString(obj, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 反序列化Json对象
|
/// 反序列化Json对象
|
||||||
@ -148,10 +142,7 @@ namespace Milimoe.FunGame.Core.Api.Utility
|
|||||||
/// <typeparam name="T"></typeparam>
|
/// <typeparam name="T"></typeparam>
|
||||||
/// <param name="json"></param>
|
/// <param name="json"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static T? JsonDeserialize<T>(string json)
|
public static T? JsonDeserialize<T>(string json) => Service.JsonManager.GetObject<T>(json);
|
||||||
{
|
|
||||||
return Service.JsonManager.GetObject<T>(json);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 反序列化Json对象 可指定反序列化选项
|
/// 反序列化Json对象 可指定反序列化选项
|
||||||
@ -160,10 +151,7 @@ namespace Milimoe.FunGame.Core.Api.Utility
|
|||||||
/// <param name="json"></param>
|
/// <param name="json"></param>
|
||||||
/// <param name="options"></param>
|
/// <param name="options"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static T? JsonDeserialize<T>(string json, JsonSerializerOptions options)
|
public static T? JsonDeserialize<T>(string json, JsonSerializerOptions options) => Service.JsonManager.GetObject<T>(json, options);
|
||||||
{
|
|
||||||
return Service.JsonManager.GetObject<T>(json, options);
|
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 反序列化Hashtable中的Json对象
|
/// 反序列化Hashtable中的Json对象
|
||||||
@ -172,10 +160,26 @@ namespace Milimoe.FunGame.Core.Api.Utility
|
|||||||
/// <param name="hashtable"></param>
|
/// <param name="hashtable"></param>
|
||||||
/// <param name="key"></param>
|
/// <param name="key"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static T? JsonDeserializeFromHashtable<T>(Hashtable hashtable, string key)
|
public static T? JsonDeserializeFromHashtable<T>(Hashtable hashtable, string key) => Service.JsonManager.GetObject<T>(hashtable, key);
|
||||||
{
|
|
||||||
return Service.JsonManager.GetObject<T>(hashtable, key);
|
/// <summary>
|
||||||
}
|
/// 反序列化IEnumerable中的Json对象
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
/// <param name="index"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static T? JsonDeserializeFromIEnumerable<T>(IEnumerable<object> e, int index) => Service.JsonManager.GetObject<T>(e, index);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 反序列化IEnumerable中的Json对象 可指定反序列化选项
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
/// <param name="index"></param>
|
||||||
|
/// <param name="options"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static T? JsonDeserializeFromIEnumerable<T>(IEnumerable<object> e, int index, JsonSerializerOptions options) => Service.JsonManager.GetObject<T>(e, index, options);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 反序列化Hashtable中的Json对象 可指定反序列化选项
|
/// 反序列化Hashtable中的Json对象 可指定反序列化选项
|
||||||
@ -185,10 +189,7 @@ namespace Milimoe.FunGame.Core.Api.Utility
|
|||||||
/// <param name="key"></param>
|
/// <param name="key"></param>
|
||||||
/// <param name="options"></param>
|
/// <param name="options"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static T? JsonDeserializeFromHashtable<T>(Hashtable hashtable, string key, JsonSerializerOptions options)
|
public static T? JsonDeserializeFromHashtable<T>(Hashtable hashtable, string key, JsonSerializerOptions options) => Service.JsonManager.GetObject<T>(hashtable, key, options);
|
||||||
{
|
|
||||||
return Service.JsonManager.GetObject<T>(hashtable, key, options);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -75,6 +75,15 @@ namespace Milimoe.FunGame.Core.Api.Utility
|
|||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public T? GetObject<T>(Hashtable table, string key) => JsonManager.GetObject<T>(table, key, options);
|
public T? GetObject<T>(Hashtable table, string key) => JsonManager.GetObject<T>(table, key, options);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 反序列化IEnumerable中的Json对象 可指定反序列化选项
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
/// <param name="index"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public T? JsonDeserializeFromIEnumerable<T>(IEnumerable<object> e, int index) => JsonManager.GetObject<T>(e, index, options);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 反序列化多个Json对象
|
/// 反序列化多个Json对象
|
||||||
/// 注意必须是相同的Json对象才可以使用此方法解析
|
/// 注意必须是相同的Json对象才可以使用此方法解析
|
||||||
@ -91,7 +100,7 @@ namespace Milimoe.FunGame.Core.Api.Utility
|
|||||||
{
|
{
|
||||||
WriteIndented = true,
|
WriteIndented = true,
|
||||||
ReferenceHandler = ReferenceHandler.IgnoreCycles,
|
ReferenceHandler = ReferenceHandler.IgnoreCycles,
|
||||||
Converters = { new DateTimeConverter(), new DataTableConverter(), new DataSetConverter() }
|
Converters = { new DateTimeConverter(), new DataTableConverter(), new DataSetConverter(), new UserConverter(), new RoomConverter() }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
47
Docs/api.xml
47
Docs/api.xml
@ -428,6 +428,25 @@
|
|||||||
<param name="key"></param>
|
<param name="key"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Milimoe.FunGame.Core.Api.Utility.NetworkUtility.JsonDeserializeFromIEnumerable``1(System.Collections.Generic.IEnumerable{System.Object},System.Int32)">
|
||||||
|
<summary>
|
||||||
|
反序列化IEnumerable中的Json对象
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<param name="e"></param>
|
||||||
|
<param name="index"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Milimoe.FunGame.Core.Api.Utility.NetworkUtility.JsonDeserializeFromIEnumerable``1(System.Collections.Generic.IEnumerable{System.Object},System.Int32,System.Text.Json.JsonSerializerOptions)">
|
||||||
|
<summary>
|
||||||
|
反序列化IEnumerable中的Json对象 可指定反序列化选项
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<param name="e"></param>
|
||||||
|
<param name="index"></param>
|
||||||
|
<param name="options"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:Milimoe.FunGame.Core.Api.Utility.NetworkUtility.JsonDeserializeFromHashtable``1(System.Collections.Hashtable,System.String,System.Text.Json.JsonSerializerOptions)">
|
<member name="M:Milimoe.FunGame.Core.Api.Utility.NetworkUtility.JsonDeserializeFromHashtable``1(System.Collections.Hashtable,System.String,System.Text.Json.JsonSerializerOptions)">
|
||||||
<summary>
|
<summary>
|
||||||
反序列化Hashtable中的Json对象 可指定反序列化选项
|
反序列化Hashtable中的Json对象 可指定反序列化选项
|
||||||
@ -655,6 +674,15 @@
|
|||||||
<param name="key"></param>
|
<param name="key"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Milimoe.FunGame.Core.Api.Utility.JsonTool.JsonDeserializeFromIEnumerable``1(System.Collections.Generic.IEnumerable{System.Object},System.Int32)">
|
||||||
|
<summary>
|
||||||
|
反序列化IEnumerable中的Json对象 可指定反序列化选项
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<param name="e"></param>
|
||||||
|
<param name="index"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:Milimoe.FunGame.Core.Api.Utility.JsonTool.GetObjects``1(System.String)">
|
<member name="M:Milimoe.FunGame.Core.Api.Utility.JsonTool.GetObjects``1(System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
反序列化多个Json对象
|
反序列化多个Json对象
|
||||||
@ -1931,6 +1959,25 @@
|
|||||||
<param name="key"></param>
|
<param name="key"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:Milimoe.FunGame.Core.Service.JsonManager.GetObject``1(System.Collections.Generic.IEnumerable{System.Object},System.Int32)">
|
||||||
|
<summary>
|
||||||
|
反序列化IEnumerable中的Json对象
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<param name="e"></param>
|
||||||
|
<param name="index"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:Milimoe.FunGame.Core.Service.JsonManager.GetObject``1(System.Collections.Generic.IEnumerable{System.Object},System.Int32,System.Text.Json.JsonSerializerOptions)">
|
||||||
|
<summary>
|
||||||
|
反序列化IEnumerable中的Json对象
|
||||||
|
</summary>
|
||||||
|
<typeparam name="T"></typeparam>
|
||||||
|
<param name="e"></param>
|
||||||
|
<param name="index"></param>
|
||||||
|
<param name="options"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:Milimoe.FunGame.Core.Service.JsonManager.GetObject``1(System.Collections.Hashtable,System.String,System.Text.Json.JsonSerializerOptions)">
|
<member name="M:Milimoe.FunGame.Core.Service.JsonManager.GetObject``1(System.Collections.Hashtable,System.String,System.Text.Json.JsonSerializerOptions)">
|
||||||
<summary>
|
<summary>
|
||||||
反序列化Hashtable中Key对应的Json对象
|
反序列化Hashtable中Key对应的Json对象
|
||||||
|
@ -54,6 +54,14 @@ namespace Milimoe.FunGame.Core.Library.Common.JsonConverter
|
|||||||
room.RoomType = (RoomType)reader.GetInt64();
|
room.RoomType = (RoomType)reader.GetInt64();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case RoomQuery.Column_GameMode:
|
||||||
|
room.GameMode = reader.GetString() ?? "";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case RoomQuery.Column_GameMap:
|
||||||
|
room.GameMap = reader.GetString() ?? "";
|
||||||
|
break;
|
||||||
|
|
||||||
case RoomQuery.Column_RoomState:
|
case RoomQuery.Column_RoomState:
|
||||||
room.RoomState = (RoomState)reader.GetInt64();
|
room.RoomState = (RoomState)reader.GetInt64();
|
||||||
break;
|
break;
|
||||||
|
@ -122,6 +122,51 @@ namespace Milimoe.FunGame.Core.Service
|
|||||||
return default;
|
return default;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 反序列化IEnumerable中的Json对象
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
/// <param name="index"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
internal static T? GetObject<T>(IEnumerable<object> e, int index)
|
||||||
|
{
|
||||||
|
IEnumerable<JsonElement> elements = e.Cast<JsonElement>();
|
||||||
|
if (elements.Count() > index)
|
||||||
|
{
|
||||||
|
JsonElement? element = (JsonElement?)elements.ElementAt(index);
|
||||||
|
if (element != null)
|
||||||
|
{
|
||||||
|
T? result = ((JsonElement)element).Deserialize<T>(GeneralOptions);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return default;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 反序列化IEnumerable中的Json对象
|
||||||
|
/// </summary>
|
||||||
|
/// <typeparam name="T"></typeparam>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
/// <param name="index"></param>
|
||||||
|
/// <param name="options"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
internal static T? GetObject<T>(IEnumerable<object> e, int index, JsonSerializerOptions options)
|
||||||
|
{
|
||||||
|
IEnumerable<JsonElement> elements = e.Cast<JsonElement>();
|
||||||
|
if (elements.Count() > index)
|
||||||
|
{
|
||||||
|
JsonElement? element = (JsonElement?)elements.ElementAt(index);
|
||||||
|
if (element != null)
|
||||||
|
{
|
||||||
|
T? result = ((JsonElement)element).Deserialize<T>(options);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return default;
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 反序列化Hashtable中Key对应的Json对象
|
/// 反序列化Hashtable中Key对应的Json对象
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user