using XFEExtension.NetCore.XFETransform.Json; namespace XFEExtension.NetCore.StringExtension.Json; /// /// 字符串查找及 JSON 编解码扩展。 /// public static class JsonStringExtension { /// 被操作的字符串。 extension(string str) { /// /// 根据给定的开头和末尾返回查找到的第一个匹配字符串。 /// public string GetStringBetweenTwoString(string beginString, string endString) { if (str == string.Empty) return string.Empty; var beginIndex = str.IndexOf(beginString, StringComparison.Ordinal); if (beginIndex is -1 or 0) return string.Empty; var endIndex = str.IndexOf(endString, beginIndex, StringComparison.Ordinal); return endIndex is -1 or 0 ? string.Empty : str.Substring(beginIndex + beginString.Length, endIndex - beginIndex - beginString.Length); } /// /// 通过给定文本格式查找对应字段。 /// public string GetTextByForm(string form) => str.GetStringBetweenTwoString(form + ":", ","); /// /// 将当前 JSON 字符串反序列化为指定类型。 /// public T? FromJson(XFEJsonOptions? options = null) => XFEJson.Deserialize(str, options); } /// 待转换对象。 extension(object obj) { /// /// 转换为 JSON 字符串。 /// public string ToJson(bool formatted = false) => XFEJson.Serialize(obj, new XFEJsonOptions { WriteIndented = formatted }); /// /// 使用指定选项转换为 JSON 字符串。 /// public string ToJson(XFEJsonOptions options) => XFEJson.Serialize(obj, options); /// /// JSON 字符串文本。 /// public string Json => obj.ToJson(); } }