c# - 使用 C# 关键字在 C# 中解析 JSON 请求

标签 c# json parsing

我正在尝试解析 JSON rpc 2.0 请求。标准定义here .

我将我的类定义为:

 [DataContract]
     public class JsonRpc2Request
     {
         public string method;
         [DataMember(Name = "params")]
         public object parameters;
         public object id;
     }

然后我尝试按如下方式解析请求:

JavaScriptSerializer ser = new JavaScriptSerializer();
var obj = ser.Deserialize<JsonRpc2Request>(Message.Trim());

obj.parameters 始终为 null。我认为这是因为我无法按照 JSON RPC 规范定义名为 params 的对象。 (我的尝试是使用 [DataMember(Name="params")] 装饰。

当 JSON RPC 规范调用名称 params(C# 中的关键字)时,如何填充参数对象?

最佳答案

您可以使用DataContractJsonSerializer :

DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(JsonRpc2Request));
MemoryStream stream = new MemoryStream(Encoding.Unicode.GetBytes(Message.Trim()));

var obj = ser.ReadObject(stream);

您还需要使用 DataMember 属性来注释 methodid

关于c# - 使用 C# 关键字在 C# 中解析 JSON 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12791263/

相关文章:

JSONSchema 将一个大模式文件拆分为多个逻辑小文件

java - 获取用户在线/离线状态

c# - 使用 XML 时引用未声明的实体异常

c# - Http Get 请求 GetResponse 错误

c# - 反射(reflection)受歧视的工会

c# - 奇怪的 "name does not exist in current context"错误

javascript - 为 JavaScript 客户端编码/解码大量数据的最佳方式?

c++ - 尝试解析保存为std::string的大文本文件

algorithm - 是否有一种算法可以使用任意规则将通用算术公式转换为另一个算术公式?

php - 删除空白字符,除了 PHP 中的引号内?