Files
hjha-server/GlobalSever/GlobalManager/JsonExtensions.cs
xiaoou e9616125ce feat: initial commit - HJHA game server full source
6 major server modules (PdkFriendServer/GlobalSever/ServerCore/GameModule/GameNetModule) +
game logic (GameFix/GameDAL/ServerData) +
network layer (NetWorkMessage) +
data layer (ObjectModel) +
utilities (MrWu/Core/Config/CloudAPI/dll) +
adapters (zyxAdapter/base)

.NET 8.0 C# solution, 16 projects, 958 source files
2026-07-07 12:02:15 +08:00

97 lines
3.1 KiB
C#

using System.Collections;
using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
/// <summary>
/// JsonExtensions
/// </summary>
public static class JsonExtensions {
/// <summary>
/// TryGetValue
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jobj"></param>
/// <param name="propertyName"></param>
/// <param name="valueIfnotexist"></param>
/// <returns></returns>
public static T GetValueOrDefault<T>(this JObject jobj, string propertyName, T valueIfnotexist = default(T)) {
if (jobj.TryGetValue(propertyName, out var value)) {
return value.ToObject<T>();
}
return valueIfnotexist;
}
/// <summary>
/// TryGetValue
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jobj"></param>
/// <param name="propertyName"></param>
/// <param name="tokenType"></param>
/// <param name="valueIfnotexist"></param>
/// <returns></returns>
public static T GetValueOrDefault<T>(this JObject jobj, string propertyName, JTokenType tokenType, T valueIfnotexist = default(T)) {
if (jobj.TryGetValue(propertyName, out var value) && value.Type == tokenType) {
return value.ToObject<T>();
}
return valueIfnotexist;
}
/// <summary>
/// TryGetValue
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="jobj"></param>
/// <param name="propertyName"></param>
/// <param name="tokenType"></param>
/// <param name="outValue"></param>
/// <returns></returns>
public static bool TryGetValue<T>(this JObject jobj, string propertyName, JTokenType tokenType, out T outValue) {
outValue = default(T);
if (jobj.TryGetValue(propertyName, out var value) && value.Type == tokenType) {
outValue = value.ToObject<T>();
return true;
}
return false;
}
/// <summary>
///
/// </summary>
/// <param name="instance"></param>
/// <returns></returns>
public static JToken ToJson(this object instance) => JToken.FromObject(instance);
/// <summary>
///
/// </summary>
/// <param name="instance"></param>
/// <returns></returns>
public static string ToJsonString(this object instance) => JToken.FromObject(instance).ToString(Formatting.None);
/// <summary>
/// parse json string then Deserialze to object
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="str"></param>
/// <returns></returns>
public static T ParseJsonToObject<T>(this string str) => JToken.Parse(str).ToObject<T>();
/// <summary>
///
/// </summary>
/// <param name="instance"></param>
/// <returns></returns>
public static JObject ToJObject(this object instance) => JObject.FromObject(instance);
/// <summary>
///
/// </summary>
/// <param name="instances"></param>
/// <returns></returns>
public static JArray ToJArray(this IEnumerable instances) => JArray.FromObject(instances);
}