XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension

【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFEExtension

fix-现在可以隐式将Json字符串转换为节点值

8948f22
XFE工作室室长 <mail@xfegzs.com>
提交于

代码差异

4 个文件 +65 -9
Modified README.md +39 -0
@@ -18,6 +18,45 @@ XFEExtension库适用于各种C#项目,特别适合在需要提高代码可读
18 18
19 19 ---
20 20
21 ## 使用Json自动解析,无需创建Json对象
22
23 #### 基础用法
24
25 ```csharp
26 using XFEExtension.NetCore.XFETransform.JsonConverter;
27
28 var jsonString = """
29 {
30 "status": 500,
31 "message": "没有找到"
32 }
33 """;
34 QueryableJsonNode jsonNode = jsonString;
35 if(jsonNode["status"] == "500")
36 {
37 Console.WriteLine(jsonNode["message"]);
38 }
39 ```
40
41 #### 查询并打包
42
43 ```csharp
44 var jsonString = """
45 {"code":0,"message":"0","data":{"archives":[{"id":0,"text":"这是Json的使用教程文档","trash":"垃圾文本1"},{"id":1,"text":"在这里,你将了解JsonNode的查询方式","trash":"垃圾文本2"},{"id":2,"text":"Hello World!","trash":"垃圾文本3"}]}}
46 """;
47 var jsonNode = (QueryableJsonNode)targetJsonString;
48 var packageList = jsonNode["data"]["archives"]["package:list", "id", "text"].PackageInListObject();
49 foreach (var node in packageList)
50 {
51 Console.WriteLine($"ID:{node.ElementAt(0).Value}\tDocument:{node.ElementAt(1).Value}");
52 }
53 var packageObject = jsonNode["package:object", "code", "message"].PackageInListObject();
54 foreach (var node in packageObject)
55 {
56 Console.WriteLine($"PropertyName:{node.Key}\tValue:{node.Value}");
57 }
58 ```
59
21 60 ## 使用LANDeviceDetector来检测本地局域网内的所有设备
22 61
23 62 #### 基础用法
Modified XFEExtension.NetCore.Test/Program.cs +18 -6
@@ -1,4 +1,5 @@
1 1 using XFEExtension.NetCore.XFEChatGPT;
2 using XFEExtension.NetCore.XFETransform.JsonConverter;
2 3
3 4 internal class Program
4 5 {
@@ -6,12 +7,23 @@ internal class Program
6 7 public static string CurrentDialogID { get; set; } = Guid.NewGuid().ToString();
7 8 private static async Task Main(string[] args)
8 9 {
9 XFEChatGPT.XFEChatGPTMessageReceived += XFEChatGPT_XFEChatGPTMessageReceived;
10 XFEChatGPT.CreateDialog(CurrentDialogID, "你是一个专门负责整理谣言的人工智能,我会提供给你一些带有时间线的谣言,这其中可能会有很多不相干的信息和没有时间线的信息,你需要自己辨别判断有用信息并将其排序从最早的到最新的日期来排序,除此之外不要说任何多余的内容,格式是:[+-RumorEntry { TimeLine = 2017/2/4, Content = 你整理的第一条谣言内容 }-+][+-RumorEntry { TimeLine = 2019/8/12, Content = 你整理的第二条谣言内容 }-+][+-RumorEntry { TimeLine = 2022/10/4, Content = 你整理的第三条谣言内容 }-+][+-RumorEntry { TimeLine = 2023/1/23, Content = 你整理的第四条谣言内容 }-+]...以此类推", true, true, ChatGPTModel.gpt4o);
11 //await XFEConsole.WriteObject(XFEChatGPT, false, false);
12 //Console.WriteLine(XFEChatGPT);
13 XFEChatGPT.AskChatGPT(CurrentDialogID, Guid.NewGuid().ToString(), "测试谣言");
14 Console.ReadLine();
10 //XFEChatGPT.XFEChatGPTMessageReceived += XFEChatGPT_XFEChatGPTMessageReceived;
11 //XFEChatGPT.CreateDialog(CurrentDialogID, "你是一个专门负责整理谣言的人工智能,我会提供给你一些带有时间线的谣言,这其中可能会有很多不相干的信息和没有时间线的信息,你需要自己辨别判断有用信息并将其排序从最早的到最新的日期来排序,除此之外不要说任何多余的内容,格式是:[+-RumorEntry { TimeLine = 2017/2/4, Content = 你整理的第一条谣言内容 }-+][+-RumorEntry { TimeLine = 2019/8/12, Content = 你整理的第二条谣言内容 }-+][+-RumorEntry { TimeLine = 2022/10/4, Content = 你整理的第三条谣言内容 }-+][+-RumorEntry { TimeLine = 2023/1/23, Content = 你整理的第四条谣言内容 }-+]...以此类推", true, true, ChatGPTModel.gpt4o);
12 ////await XFEConsole.WriteObject(XFEChatGPT, false, false);
13 ////Console.WriteLine(XFEChatGPT);
14 //XFEChatGPT.AskChatGPT(CurrentDialogID, Guid.NewGuid().ToString(), "测试谣言");
15 //Console.ReadLine();
16 using var client = new HttpClient();
17 client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36 Edg/129.0.0.0");
18 QueryableJsonNode jsonNode = await client.GetStringAsync("https://zy.xywlapi.cc/qqapi?qq=64482927");
19 if (jsonNode["status"] == "500")
20 {
21 Console.WriteLine(jsonNode["message"]);
22 }
23 else
24 {
25 Console.WriteLine("成功");
26 }
15 27 }
16 28
17 29 private static void XFEChatGPT_XFEChatGPTMessageReceived(object? sender, XFEExtension.NetCore.XFEChatGPT.ChatGPTInnerClass.HelperClass.MemorableGPTMessageReceivedEventArgs e)
Modified XFEExtension.NetCore/XFEExtension.NetCore.csproj +3 -3
@@ -5,7 +5,7 @@
5 5 <ImplicitUsings>enable</ImplicitUsings>
6 6 <Nullable>enable</Nullable>
7 7 <GenerateDocumentationFile>True</GenerateDocumentationFile>
8 <Version>3.1.0</Version>
8 <Version>3.1.1</Version>
9 9 <Title>XFEExtension</Title>
10 10 <RepositoryUrl>https://github.com/XFEstudio/XFEExtension</RepositoryUrl>
11 11 <AnalysisLevel>latest</AnalysisLevel>
@@ -20,11 +20,11 @@
20 20 <PackageTags>XFE;拓展;GPT;Server;服务器;测试;XFEExtension</PackageTags>
21 21 <PackageReleaseNotes>## 调整
22 22
23
23 现在可以隐式将Json字符串转换为节点值
24 24
25 25 ## 新增
26 26
27 现在支持将Json字符串直接转为可查询的Json节点对象,进行步进查询
27
28 28
29 29 ## 严重
30 30
Modified XFEExtension.NetCore/XFETransform/JsonConverter/QueryableJsonNode.cs +5 -0
@@ -88,4 +88,9 @@ public class QueryableJsonNode(JsonNode jsonNode) : INodeBase, IQueryableJsonNod
88 88 /// </summary>
89 89 /// <param name="jsonString"></param>
90 90 public static implicit operator QueryableJsonNode(string jsonString) => new(new JsonNodeConverter(jsonString).ConvertToJsonNode());
91 /// <summary>
92 /// 隐式将Json字符串转换为节点值
93 /// </summary>
94 /// <param name="queryableJsonNode"></param>
95 public static implicit operator string(QueryableJsonNode queryableJsonNode) => $"{queryableJsonNode.Value}";
91 96 }