首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >统一Restsharp Json系列化与反序列化

统一Restsharp Json系列化与反序列化
EN

Stack Overflow用户
提问于 2021-12-17 09:34:11
回答 1查看 353关注 0票数 1

我正在开发一个多人游戏。我有一个在Swagger.io上开发API的朋友。所以我的问题是:

我想使用我可以使用的任务函数,而不是团结自己的UnityWebRequest函数。我负责做一些研究,我写了以下代码。

代码语言:javascript
复制
    private async Task<T> Send<T>(string service, object obj)
{
    RestClient client = new RestClient(baseUrl);
    RestRequest request = new RestRequest(service)
    {
        RequestFormat = DataFormat.Json,
        Method = Method.POST,
    };
#if UNITY_ANDROID
        uniqueID = SystemInfo.deviceUniqueIdentifier;
        platform = "1";
#endif
#if UNITY_IOS
        uniqueID = UIDevice.identifierForVendor
        platform = "0";
#endif
        request.AddHeader("DeviceID", uniqueID);
        request.AddHeader("BundleID", Application.identifier);
        request.AddHeader("BuildID", "0");
        request.AddHeader("Platform", platform);
        request.AddHeader("Version", "0");
        request.AddJsonBody(obj);

        var response = await client.ExecuteAsync(request);

        if (response.Content != null && response.StatusCode == HttpStatusCode.OK)
        {
            var jsonSerializerSetting = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, MissingMemberHandling = MissingMemberHandling.Ignore };
            var result = JsonConvert.DeserializeObject<T>(response.Content, jsonSerializerSetting);
            return result;
        }
        else
        {
            return default;
        }

因为它是一个异步函数,所以我调用它时没有任何问题。就像这样:

我有一些类可以响应其他类:

代码语言:javascript
复制
[Serializable]
public class WelcomeRequest : Response
{
    public string Location;
    public string Language;
}
[Serializable]
public class WelcomeRequest : Response
{
    public string Location;
    public string Language;
}[Serializable]
public class WelcomeResponse : Response
{
    public WelcomePayload Payload;
}

[Serializable]
public class WelcomePayload : Response
{
    public Player Player;
    public Settings Settings;
    public Season Play;
    public Season Purchase;
    public Game GameOfSeason;
    public Game[] Games;
    public double PrizePool;
}

(我知道这是一个很大的项目,有很多子类。我不想让你为我写代码,我只想让你解释我写的代码的逻辑和一个我可以参考的例子。更别说是我一个人干的。除了你,我没有任何朋友可以帮助你。)我能够从服务器接收json格式的文件。但是由于这个函数只返回对象,所以我不能分配类的子对象。我是否需要再次将其转换为json格式并反序列化它?因为我以前使用过Firebase基础设施,所以我能够毫无问题地进行通信。我寻找雷斯夏普统一教程,但找不到任何。你能帮帮我吗?至少如果你指导我,我会自己解决这个问题。很抱歉,如果我没有正确地表达我自己,因为这是我在这个网站上的第一篇文章,我不太清楚的规则。感谢你们所有人。

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70391065

复制
相关文章

相似问题

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