json-rpc 参数版本 1.0 vs 2.0

Posted

技术标签:

【中文标题】json-rpc 参数版本 1.0 vs 2.0【英文标题】:json-rpc parameters version 1.0 vs 2.0 【发布时间】:2014-06-25 08:48:37 【问题描述】:

我可以在 json-rpc 1.0 上请求这样的参数吗:

...,"params":["name":"x","type":"y"],... 

或者这只能在 2.0 版本中实现?

我尝试了更多示例,但不起作用。我仅将参数作为列表发送

....,"parmas":["name","type"],..... 

【问题讨论】:

【参考方案1】:

你可以在 1.0 中有对象参数,在数组中,所以你的第一个例子是正确的。

不同的是,在1.0中params中必须有一个数组(可以包含对象),而在2.0中params本身可以是一个对象。

在 1.0 和 2.0 中都正确:

params: [ "key": "value" , "Other param" ]

在 2.0 中正确,但在 1.0 中不正确:

params:  "key": "value", "other": "param" 

【讨论】:

请注意,1.0 规范说 params 是“对象数组”。因此,我的第一个示例无效,在数组中包含一个字符串。但是,我认为这只是规范中单词的错误选择,而不是禁止非对象参数的意图。【参考方案2】:

1.0 仅支持参数数组。

JSON-RPC 1.0 specification

2.0 增加了对命名参数的支持。

JSON-RPC 2.0 specification

【讨论】:

以上是关于json-rpc 参数版本 1.0 vs 2.0的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中的 JSON-RPC 2.0 中编写“参数”?

CCF-棋局评估 201803-04(版本 2.0)------(之前写了一个臃肿的1.0版 ,还沾沾自喜 233)

基于 JSON-RPC 2.0 的 API 出现问题

升级 VS2022 预览版到发布版

1.VS2013和opencv3.1.0安装教程

request发送json-rpc请求