我正在尝试解析 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
属性来注释 method
和 id
。
关于c# - 使用 C# 关键字在 C# 中解析 JSON 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12791263/