首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用RestSharp在github中获取json文件

如何使用RestSharp在github中获取json文件
EN

Stack Overflow用户
提问于 2022-02-19 04:49:45
回答 1查看 164关注 0票数 0

我需要使用RestSharp从github获取一个json文件。我在用C#编码。

我试过这样做:

代码语言:javascript
运行
复制
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using System.Net.Http;
using System.Web;
using System.Net;
using Newtonsoft.Json;
using RestSharp;
using RestSharp.Authenticators;
using RestSharp.Extensions;

namespace OurOSBasic.O_OS_Kernel.ACK
{
    internal class Commands
    {
        public string Command { get; set; }
        public short Response { get; set; }

        public override string ToString()
        {
            return $"{Command,20}: {Response} contributions";
        }
    }


    class CommandParser
    {
        private static System.Text.Json.JsonElement root;
        private static System.Text.Json.JsonElement.ArrayEnumerator elems;

        public static async void CommandParserFunc()
        {
            var client = new RestClient("https://github.com");

            var request = new RestRequest("OurWorldMetaverse/OurOSBasic/blob/main/O_OS-Kernel/ACK/Resources/ACKCommands.json", Method.Get);
            // Add HTTP headers
            request.AddHeader("User-Agent", "Nothing");

            // Execute the request and automatically deserialize the result.
            var contributors = client.ExecuteAsync<List<Commands>>(request);
            Console.Write(contributors.Result.Data);


        }

    }
}

我正在尝试制作一个模拟OS的桌面应用程序。这段代码是我试图为它的控制台制作一个CommandParser。

都没有用。任何帮助都很重要。

EN

Stack Overflow用户

发布于 2022-02-21 12:30:17

很难理解您想要做什么,但是您的代码有很多问题。

您正在读取的https://raw.githubusercontent.com/OurWorldMetaverse/OurOSBasic/main/O_OS-Kernel/ACK/Resources/ACKCommands.json

  • The文件不是JSON文件,而是一个网页。

代码语言:javascript
运行
复制
{
  "exclude": [
    "**/bin",
    "**/bower_components",
    "**/jspm_packages",
    "**/node_modules",
    "**/obj",
    "**/platforms"
  ],
  "Commands": {
    "ping": "pong",
    "isaiah": "Isaiah is the Head of 3D Modeling at OurWorld",
    "clear": "Clearning Console...",
    "duggo": "Duggoooo!",
    "aidyn": "Have a kermit",
    "magnet": "AA A MAGNET NOOO!",
    "upshot": "ITS RAINING DOLLA BILLS",
    "FakeMathew": "Need to be incognito?"
  }
}

它与您的Commands类没有什么关系,因为首先,Commands集合是一个映射,其次,它是一个属性,而不是根元素,第三,它根本没有short值,所有的值都是字符串。

  • 您正在使用的async void不是任何人都应该做的事情。
  • 您正在获取.Result而不是等待呼叫

下面是可以工作的代码,但我认为您可以从首先学习一些C#基础知识中获益。

代码语言:javascript
运行
复制
using RestSharp;

var client = new RestClient("https://raw.githubusercontent.com/");
var response = await client.GetJsonAsync<Response>("OurWorldMetaverse/OurOSBasic/main/O_OS-Kernel/ACK/Resources/ACKCommands.json");
Console.WriteLine(response!.Commands["ping"]);

class Commands : Dictionary<string, string>{}

class Response {
    public Commands? Commands { get; set; }
}
票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71182261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档