параметры json-rpc версии 1.0 против 2.0

#json-rpc

#json-rpc

Вопрос:

Могу ли я получить запрос на json-rpc 1.0 с такими параметрами:

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

или это возможно только в версии 2.0?

Я пробую больше примеров, но ничего не получается.Я отправляю параметры только в виде списка

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

Ответ №1:

Вы МОЖЕТЕ иметь параметры объекта в 1.0, внутри массива, поэтому ваш первый пример верен.

Разница в том, что в 1.0 в параметрах должен быть массив (который может содержать объекты), а в 2.0 сам параметр может быть объектом.

Правильно как в 1.0, так и в 2.0:

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

Исправлено в версии 2.0, но НЕ 1.0:

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

Комментарии:

1. Обратите внимание, что в спецификации 1.0 указано, что params — это «массив объектов». Таким образом, мой первый пример был бы недопустимым, если бы содержал строку в массиве. Но я думаю, что это просто неудачный выбор слов в спецификации, а не намерение запретить не-объектные параметры.

Ответ №2:

1.0 поддерживает только массив параметров.

2.0 добавлена поддержка именованных параметров.