c# - 将(许多)JSON 不同对象解析为 C# 类。强类型更好吗?

标签 c# php json json.net

我一直在做一个客户端 - 服务器项目。在 PHP 上实现的服务器端。在 C# 上实现的客户端。 websocket 用于它们之间的连接。

所以,这就是问题所在。客户将提出请求。 Json 用于发送对象并根据模式进行验证。请求必须有它的名字并且可以包含参数。 Args 就像关联数组(键 => 值)。

服务器将给出响应。响应可以包含参数、对象、对象数组。例如,客户端发送如下请求:

    {
    "name": "AuthenticationRequest",
    "username": "root",
    "password": "password",
    "etc": "etc"
    }

为此,服务器将回复 AuthSuccess 或 AuthFailed 响应,例如:
    {
    "name": "AuthFailed",
    "args": [
        {
        "reason": "Reason text"
        }]
    }

如果响应为 AuthSuccess,客户端将发送在线请求。服务器必须发送一组用户。

等等。所以问题是,如何在客户端存储这些响应。我的意思是,为每个响应类型创建一个新对象的方式是疯狂的。它们将是数百种请求类型,并且每一种都需要它自己的响应。请求结构的任何变化都将非常困难......

需要某种模式或技巧。我知道这是一种菜鸟的方式......但是如果有人对实现请求/响应结构有更好的想法,请告诉它。

此致!

最佳答案

为什么为每种请求/响应创建一个类是一个问题?如果您有数百种不同类型的请求和响应,您可能想要尝试更好地对它们进行分类。

我认为在您的请求或响应中存在共同的模式。例如。 FailureResponse可能总是包含一些状态信息,也可能包含一个 UserData- object (这可以是任何取决于用例)。这同样可以应用于其他类别(例如 SuccessResponse )。

关于c# - 将(许多)JSON 不同对象解析为 C# 类。强类型更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32368199/

相关文章:

jquery - 从字符串创建 JSON,用作对象

php - 在 Linux 环境中从 PHP 脚本运行应用程序时出现问题

php - 如何使用 codeigniter 使用其各自的数据从 a-z 进行分页

php 内的链接的 javascript 不起作用

php 从 mysql 数据库编码 JSON,但显示 "???"数据

c# - 如何处理 C# 中缺少多重继承的问题

c# - 使用 Fisher-Yates 算法后的随机字符串冲突 (C#)

c# - C# 中的 wglCreateContext 失败但托管 C++ 中没有

c# - 你能从 SqlDataReader 中获取列名吗?

java - 对象转换为 Json 字符串并转换回对象失败,缺少 DateTime 元素 Android