JSON — Википедия

Когда вы начнете писать свои программы на языках программирования, рано или поздно возникает проблема хранения и передачи данных. Одним из вариантов, как эту проблему можно решить является использование формата данных JSON.

JSON (с англ. JavaScript Object Notation). Если перевести JavaScript Object Notation на русский язык, то это будет означать Представление Объектов в Javascript.

JSON – это один из способов хранения и передачи данных, который может быть использован в качестве альтернативного варианта хранения данных, например с помощью формата XML.

Формат JSON  имеет поддержку во многих языках программирования.

Но, изначально он произошел от Javascript (стандарта ECMA-262 1999 года).

Официальный сайт и документация JSON здесь.

http://www.json.org

Вариант на русском языке здесь http://www.json.org/json-ru.html

Данные в формате JSON представляют собой обычный текст, который написан по определенным правилам.

Эти данные могут храниться как на веб-странице, так и в отдельном файле с расширением *.json.

О том, как создать подобный файл, я писал здесь.

Для того, чтобы лучше представлять, что же такое данные JSON, давайте посмотрим на следующий пример:

{ «array»: [ 1, 2, 3 ], «boolean»: true, «null»: null, «number»: 123, «object»: { «a»: «b», «c»: «d», «e»: «f» }, «string»: «Hello World» }

Как можно видеть, в этом примере данные в формате JSON, имеют сложную структуру. Они представляют собой: объекты, массивы, строки и пары имя : значение.

Так как JSON представляет собой обычный текст, с его помощью вы можете легко передавать и обмениваться данными между различными языками программирования, базами данных и серверами.

Этот формат очень часто используется в современных скриптах, поэтому иметь представление что это такое и как с этим работать очень важно.

Кстати, хотите узнать есть ли смысл в каком-то элементе на вашем сайте с помощью «целей» Яндекс Метрики и Google Analytics?

Уберите то, что НЕ работает, добавьте то, что работает и удвойте вашу выручку.

Курс по настройке целей Яндекс Метрики..

Курс по настройке целей Google Analytics..

Людям, работающим с веб часто приходится сталкиваться с необходимостью взаимодействовать с объектами JSON (JavaScript Object Notation).

Это удобный способ структурированно хранить необходимые данные. Понятное дело, что и на Python должна быть реализация взаимодействия со строками JSON.

Разработчики Python позаботились об этом, поэтому в состав стандартной библиотеки Python входит модуль json. Почитать подробнее о нем можно в официальной документации, а пока мы сконцентрируемся на конкретной задаче:

Распарсить строку json средствами Python.

Представим, что у нас есть следующая строка json, представляющая заказ товара в интернет-магазине:

{ «orderID»: 42, «customerName»: «John Smith», «customerPhoneN»: «555-1234», «orderContents»: [ { «productID»: 23, «productName»: «keyboard», «quantity»: 1 }, { «productID»: 13, «productName»: «mouse», «quantity»: 1 } ], «orderCompleted»: true }

Тогда код на Python должен быть следующим:

import json # строка которую будем парсить json_string = «»» { «orderID»: 42, «customerName»: «John Smith», «customerPhoneN»: «555-1234», «orderContents»: [ { «productID»: 23, «productName»: «keyboard», «quantity»: 1 }, { «productID»: 13, «productName»: «mouse», «quantity»: 1 } ], «orderCompleted»: true } «»» # распарсенная строка parsed_string = json.loads(json_string)

Переменная parsed_string будет иметь тип данных словарь, следовательно любой элемент строки json можно будет получить через необходимый ключ:

 

Как видите, для того чтобы распарсить строку json средствами Python достаточно воспользоваться встроенной библиотекой этого прекрасного языка программирования.

Введение в JSON


العربيةБългарски中文ČeskýDanskNederlandsEnglishEsperantoFrançaisDeutschΕλληνικάעבריתMagyarIndonesia
Italiano日本한국어فارسیPolskiPortuguêsRomânăРусскийСрпско-хрватскиSlovenščinaEspañolSvenskaTürkçeTiếng Việt


ECMA-404 The JSON Data Interchange Standard.


object
members
members
pair
pairmembers
pair
stringvalue
array
elements
elements
value
valueelements
value
string
number
object
array


string
chars
chars
char
char chars
char
any-Unicode-character-
    except--or--or-
    control-character

four-hex-digits

number
int
int frac
int exp
int frac exp
int
digit
digit1-9 digits
digit
digit1-9 digits
frac
digits
exp
edigits
digits
digit
digitdigits
e

JSON (JavaScript Object Notation) — простой формат обмена данными, удобный для чтения и написания как человеком, так и компьютером. Он основан на подмножестве языка программирования JavaScript, определенного в стандарте ECMA-262 3rd Edition — December 1999. JSON — текстовый формат, полностью независимый от языка реализации, но он использует соглашения, знакомые программистам C-подобных языков, таких как C, C++, C#, Java, JavaScript, Perl, Python и многих других. Эти свойства делают JSON идеальным языком обмена данными.

JSON основан на двух структурах данных:

  • Коллекция пар ключ/значение. В разных языках, эта концепция реализована как объект, запись, структура, словарь, хэш, именованный список или ассоциативный массив.
  • Упорядоченный список значений. В большинстве языков это реализовано как массив, вектор, список или последовательность.

Это универсальные структуры данных.

Почти все современные языки программирования поддерживают их в какой-либо форме. Логично предположить, что формат данных, независимый от языка программирования, должен быть основан на этих структурах.

В нотации JSON это выглядит так:

Объект — неупорядоченный набор пар ключ/значение. Объект начинается с  (открывающей фигурной скобки) и заканчивается  (закрывающей фигурной скобкой). Каждое имя сопровождается  (двоеточием), пары ключ/значение разделяются  (запятой).

Массив — упорядоченная коллекция значений. Массив начинается с  (открывающей квадратной скобки) и заканчивается  (закрывающей квадратной скобкой). Значения разделены  (запятой).

Значение может быть строкой в двойных кавычках, числом, , , , объектом или массивом. Эти структуры могут быть вложенными.

Строка — коллекция нуля или больше символов Unicode, заключенная в двойные кавычки, используя  (обратную косую черту) в качестве символа экранирования. Символ представляется как односимвольная строка. Похожий синтаксис используется в C и Java.

Число представляется так же, как в C или Java, кроме того, что используется толко десятичная система счисления.

Пробелы могут использоваться между любыми лексемами.

Исключая некоторые детали кодирования, вышеизложенное полностью описывает язык.


Добавить комментарий

Закрыть меню