Давайте сделаем все по-прямому:
- Строка запроса - это фрагмент URL, который стоит после
?
. Например, в http://test.com/foo?baz=1
фрагмент baz=1
является строкой запроса для этого URL. - JSON - это хорошо известный формат данных. Я не буду здесь углубляться в спецификацию (поскольку она достаточно известна), но, например,
{"test":1}
- это строка JSON.
И так, это две разные вещи. Это не похоже на «то или это», например, вы можете объединить оба, чтобы иметь
http://test.com/?{"test":1}
И теперь у вас есть JSON в качестве строки запроса. Обратите внимание, что формат строки запроса не стандартизирован, поэтому он полностью действителен.
Так что, как вы можете видеть, эти два на самом деле не сопоставимы. Если под «строкой запроса» вы не имеете в виду конкретный формат, то есть типичный стиль x=1&y=2&z=3
. Эти два мы можем сравнить. JSON обладает преимуществом лучшей структуры: вы можете вкладывать объекты, у вас есть массивы, у вас есть (немного, но все еще) типы. Но он менее читабелен, тем более что некоторые символы в URL должны быть экранированы. И для его анализа требуется немного больше времени (хотя вряд ли это имеет значение).
Мой подход заключается в следующем: для GET
используйте «стандартные» строки запроса в URL, для POST
JSON в теле. Если ваш GET
становится более сложным, то превратите его в POST
с JSON.