Освой программирование играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
В настоящее время в качестве формата данных в интернете широко используются две технологии: XML и JSON. В какой-то степени они являются конкурентами, хотя и созданы для разных задач. Мы рассмотрим только формат JSON.
JSON – это:
Структуру данных в JSON можно можно представить как комбинацию:
JSON часто используется в Ajax-приложениях при обмене данных с веб-сервером. Предположим, что приложение должно запросить нужные данные кота Барсика. Приложение должно возвратить в браузер больше чем один элемент данных. Как же их упаковать? Можно просто получить от сервера код JavaScript и работать непосредственно с ним. Вот пример ответа на запрос (http://yourserver/app/searchcontact?Barsik) от гипотетического приложения для кота по имени Barsik. Строковое представление объекта JavaScript и является строкой JSON:
{"catname":"Barsik","age":"5"},{"catname":"Murzik", "lastname":"Ivanov","age":"9"}
Объекты JSON имеют формат пар ключ:значение. Элементы объекта разделены запятыми, и каждый объект заключён в фигурные скобки {}.
Ключи можно создавать в любом порядке, JSON-объект — это неупорядоченное множество пар «ключ:значение».
{ // Начало объекта
"catname":"Барсик",
"age": 7
} // Конец объекта
Значения могут быть в основном строками (тогда ставим кавычки) или числами (без кавычек). В сложных примерах доступны дополнительные варианты (объекты, массивы и т.д.), тоже без кавычек.
Массив начинается с [ (открывающей квадратной скобки) и заканчивается ] (закрывающей квадратной скобкой). Значения разделены , (запятой).
В массивах нет ключей, как в объекте, поэтому обращаться к массиву можно только по номеру элемента. Соответственно, данные внутри массива нельзя менять - это упорядоченное множество значений.
// Строки
[ // Начало массива
"Барсик", "Мурзик"
] // Конец массива
// Числа
[ 1, 2, 3, 4, 5, 6, 7, 8, 9 ]
// Смешанные данные
[ 1, "Мурзик", 27 ]
Значение может быть строкой в двойных кавычках, числом, true, false, null, объектом или массивом. Эти структуры могут быть вложенными.
toddmotto/public-apis: A collective list of public JSON APIs for use in web development. - список сайтов с публичными JSON API.
На странице JSON Test by jsontest можно проверять работу с JSON через интернет.
На странице JSONLint - The JSON Validator можно проверять валидность JSON.
JSON Editor Online - view, edit and format JSON online - тоже удобный сервис для просмотра JSON-ответов
JSON Formatter & Validator - ещё один удобный сервис для просмотра JSON, позволяющий сворачивать и разворачивать узлы.
JSONPlaceholder - Fake online REST API for developers - сервер для тестирования REST API
jsonschema2pojo - генерация Java-классов из JSON.
Пример работы в Android.