кодесурса
«JSON

JSON Tutorial

script1adsense2code
script1adsense3code

Вступление

Это вводное руководство по JSON - JavaScript Object Notation. Как веб-разработчик, вы найдете множество случаев, когда вам потребуется применить или работать с JSON в вашем проекте. Этот учебник начинает набор учебников по JSON и обсуждает определение, спецификацию, как выглядит JSON в реальном мире, немного истории JSON, сравнение между Relational Database и JSON, краткое понимание того, когда выбирать JSON вместо Relational Database, XML vs JSON, синтаксис JSON, типичные примеры реального использования JSON.

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

В конечном счете, JSON используется в качестве модели данных, но по сравнению с другими моделями данных, такими как реляционная база данных или XML, он имеет низкую кривую обучения. Фактически, если вы знакомы с любым современным языком программирования (например, PHP, JavaScript, Ruby), вы уже знакомы со структурами данных, используемыми в JSON. Более того, любой современный язык программирования может работать с JSON. Возможно, именно поэтому JSON получил широкое признание со стороны сообщества разработчиков. Следующее визуальное представление от Google Trend может помочь вам понять, как JSON набирает популярность с годами.

Что такое JSON

JSON - это легкий текстовый открытый формат обмена данными. Это читается человеком. JSON происходит от подмножества языка программирования JavaScript (Стандарт ECMA-262, 3-е издание - декабрь 1999 г.). Он полностью независим от языка и может использоваться с большинством современных языков программирования.

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

JSON является стандартом и определен в RFC4627 в IETF (Международная инженерная рабочая группа). Спецификация сделана Doglus Crockford в июле 2006 года.

Файлы JSON сохраняются с расширением .json. Тип мультимедиа в Интернете JSON - это «application / json».

Как выглядит JSON

Теперь посмотрим, как выглядит типичный JSON. Следующий фрагмент кода является допустимым (вы увидите в следующей главе, что такое синтаксически допустимый JSON) JSON, представляющий информацию о книге.


{
    "Title": "The Cuckoo's Calling",
    "Author": "Robert Galbraith",
    "Genre": "classic crime novel",
    "Detail": {
        "Publisher": "Little Brown",
        "Publication_Year": 2013,
        "ISBN-13": 9781408704004,
        "Language": "English",
        "Pages": 494
    },
    "Price": [
        {
            "type": "Hardcover",
            "price": 16.65
        },
        {
            "type": "Kidle Edition",
            "price": 7.03
        }
    ]
}

Теперь мы обсудим, каковы основные конструкции JSON.

Основные конструкции

  • Существует четыре основных и встроенных типа данных в JSON. Это строки, числа, логические значения (т. Е. Истина и ложь) и ноль. Кроме того, существует два типа данных, которые структурированы - объекты и массивы.
  • Объекты заключены в '{' и '}'. Массивы заключены в '[' и ']'. Объекты представляют собой список пар метка-значение. Массивы - это список значений.
  • Оба объекта и массива могут быть вложенными.
  • В качестве значений могут использоваться строки, числа, логические значения (т. е. истина и ложь) и ноль.

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

«А

Таким образом, все содержимое данных JSON, показанных выше, заключено в объект. «Заголовок»: «Призыв кукушки», «Автор»: «Роберт Гэлбрейт», «Жанр»: «классический криминальный роман», это пары метка-значение, разделенные запятыми. Метки и их значения разделяются двоеточием (:). Обратите внимание, что и метки, и значения заключены в кавычки, поскольку они являются строками.

Обратите внимание на метку «Детали». Он содержит другой объект, который снова содержит несколько пар метка-значение. Это пример того, как в JSON выполняется вложение (в данном случае объект внутри объекта).

Затем метка «Цена» содержит массив, который в свою очередь содержит два отдельных объекта. Еще один пример вложенности.

Также обратите внимание, что числа не заключены в кавычки.

История JSON

Имя, стоящее за популяризацией JSON, - Дуглас Крокфорд. Он использовал JSON в своей компании State Software около 2001 года.

В 2005 году Yahoo начала использовать JSON в своих веб-сервисах.

В конце 2006 года Google начал предлагать JSON в своем веб-протоколе Gdata.

На сегодняшний день JSON является одним из наиболее широко используемых форматов обмена данными в сети и поддерживается большинством веб-API (таких как twitter api) для извлечения общедоступных данных и создания из них приложений.

Сравнение с реляционной базой данных

Поскольку JSON используется для размещения / представления данных, мы обсудим, чем они отличаются от традиционной модели реляционной базы данных, используемой в системах RDBMS, таких как MySQL, SQL Server и т. Д. Это может быть полезно для вас, чтобы выбрать JSON вместо RDBMS или RDBMS над JSON в зависимости от на тип и структуру данных, с которыми вы хотите иметь дело. Давайте начнем со сравнения с некоторыми функциями:

  • Структура : в реляционной базе данных это таблицы, которые отвечают за хранение данных в виде строк и столбцов. JSON использует объекты и массивы - объекты являются парами метка-значение, а массивы - это список значений. Они могут быть вложены рекурсивно.
  • Метаданные : В реляционной базе данных это схема, которая используется для хранения данных о структуре и типе данных, которые должны быть сохранены, и схемы предопределены, т.е. они создаются во время создания базы данных и таблиц, прежде чем вы сможете хранить данные. JSON также может использовать схему для определения структуры и типа представляемых данных, но это не предопределено. Большую часть времени он описывает себя, даже если он использует схему, он обладает гораздо большей гибкостью, чем схема, используемая в реляционной базе данных. Но было бы целесообразно сказать, что это преимущество JSON перед реляционной базой данных. Наличие заранее определенной схемы может иметь несколько преимуществ в зависимости от данных, с которыми необходимо иметь дело.
  • Извлечение данных . Реляционные базы данных используют язык структурированных запросов, выразительный и очень мощный язык, основанный на реляционной алгебре, для извлечения данных из базы данных. JSON не имеет широко распространенного или общепринятого языка для запроса сохраненных данных. JAQL и JSONiq - это многие из языков запросов, которые в основном находятся в стадии разработки для запроса данных из JSON.
  • Сортировка : SQL выполняет свою работу в случае реляционной базы данных. В случае JSON, поскольку в программах часто используются массивы, массивы можно сортировать.
  • Приложение . Существует множество систем с открытым исходным кодом, а также коммерческие системы реляционных баз данных, такие как MySQL, POstgreSQL, SQL Server, Oracle, DB2 и т. Д. JSON в основном применяется для языков программирования. Но есть и системы NoSQL. Системы NoSQL используют формат JSON для хранения данных. Некоторые из систем NoSQL используют формат JSON: MongoDB, CoucheDB и т. Д.
  • Кривая обучения : JSON здесь явный победитель. Поскольку используемые здесь базовые типы данных и структура аналогичны тем, которые используются во многих языках программирования, очевидно, что если вы пришли из опыта программирования, вы довольно быстро освоите JSON. СУБД - это отдельная область исследований, с другой стороны. Но определенно время, потраченное на изучение реляционной базы данных, принесет вам несколько возможностей и преимуществ.

Теперь давайте обсудим несколько вариантов использования, которые будут полезны.

Предположим, что вы должны хранить информацию о студентах (имя, идентификатор, класс) и оценки, полученные ими по различным предметам. Реляционная база данных здесь удобнее, чем использование JSON, поскольку здесь мы можем иметь одну таблицу, содержащую сведения об ученике, и другую таблицу с оценками, полученными ими по различным предметам.

Теперь предположим, что мы должны представить информацию о студентах (имя, идентификатор, класс) и различных проектах, которые они выполнили по различным предметам, вместе с кратким описанием проекта. Предположим, что учащийся может выполнить любое количество проектов и любое количество предметов по своему выбору. Обратите внимание, что в этом случае у вас может быть единообразие данных, которые будут сохранены. Таким образом, в этом случае JSON будет предпочтительнее, чем использование реляционной базы данных.

JSON против XML

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

  • XML более выразителен, чем JSON. XML иногда также страдает от многократного использования тегов, поскольку JSON гораздо более лаконичен.
  • XML сложнее, чем JSON.
  • Существует несколько спецификаций для определения схемы (метаданных) для XML, например DTD и XSD. Схема JSON предназначена для того же, что и для JSON, но она не так широко используется, как схемы XML.
  • XML может использоваться с большинством языков программирования как JSON. Но дело в том, что когда вы работаете с XML, то вы фактически пытаетесь сопоставить две системы, эти структуры данных различны. Однако в случае JSON, поскольку объекты и массивы являются основными используемыми структурами данных, с ними легко работать в программах.
  • Для выбора определенных частей документа XML существует стандартная спецификация под названием XPath. Это широко используется. В JSON у нас есть JSONPath для того же, но не широко используемого.
  • XML имеет спецификацию Xquery для запроса данных XML. У JSON есть JAQL, JSONiq и т. Д., Но они не используются широко.
  • XML имеет спецификацию XSLT, которую можно использовать для применения стиля к документу XML. У JSON нет такой вещи.

Типичное использование JSON

API : API является наиболее широко используемой областью, где JSON используется для обмена данными. В частности, у веб-приложений, имеющих социальное лицо, теперь стало очевидным, что у них есть API, так что разработчики могут использовать огромное количество данных, собираемых приложением, а затем создавать производные приложения. Твиттер, Facebook, Linkedin, Flicker, Dribble, вы называете его, все известные сегодня приложения в Интернете имеют API и используют JSON в качестве предпочтительного формата для предоставления данных разработчикам. Из этих API некоторые поддерживают как JSON, так и XML, но некоторые поддерживают только JSON.

Мы увидим простую демонстрацию API Rottentomatoes, чтобы понять, как JSON используется в API. В этой демонстрации мы запрашиваем у rottentomatoes.com название и плакат с миниатюрами фильма, содержащего строку «Жизнь прекрасна», используя JavaScript и Jquery. Возвращает результат в формате JSON, а затем отображается в браузере. Ниже приведен скриншот этого.

NoSQL : это еще одна область, где используется JSON. Базы данных NoSQL, такие как MongoDb, CouchDb использует формат JSON для хранения данных.

Поскольку структуры JSON могут быть преобразованы в объекты JavaScript в среде браузера, с ним очень легко работать. Более того, он также может быть интегрирован с серверным JavaScript. Ниже показано, что в MongoDb данные хранятся в формате JSON (точнее, используется вариант JSON, называемый BSON). Вы можете изучить MongoDb подробно в нашем отдельном руководстве для MongoDb .

Сначала мы выбираем базу данных. Наше имя базы данных здесь w3r_demo.

> use w3r_demo
switched to db w3r_demo

Теперь мы вставим некоторые данные в коллекцию (например, таблицу в RDBMS) книг. Вводимые нами данные показаны в примере данных JSON выше в этом примере.

> db.books.save({
     "Title": "The Cuckoo's Calling",
     "Author": "Robert Galbraith",
     "Genre": "classic crime novel",
     "Detail": {
         "Publisher": "Little Brown",
	    "Publication_Year": 2013,
         "ISBN-13": 9781408704004,
         "Language": "English",
         "Pages": 494
      },
      "Price": [
          {
               "type": "Hardcover",
               "price": 16.65
          },
          {
               "type": "Kidle Edition",
               "price": 7.03
          }
      ]
  }
)

Мы выберем данные вставки и отображения сейчас.

> db.books.find()
{"_id" : ObjectId("51ee7088b63a0c553918fdd3"), "Title": "The Cuckoo's Calling",	 "Author": "Robert Galbraith", "Genre": "classic crime novel",
"Detail": { "Publisher": "Little Brown", "Publication_Year": 2013, "ISBN-13": 9781408704004, "Language": "English", "Pages": 494},
"Price": [  {  "type": "Hardcover", "price": 16.65  }, { "type": "Kidle Edition", "price": 7.03  } ] } 

Таким образом, мы храним данные в формате JSON в базе данных NoSQL MongoDb.

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

В следующей демонстрации мы используем Jquery и AJAX, чтобы получить последние 5 фотографий кошек из Flicker. Мы можем посмотреть живую демонстрацию здесь . И следующий скриншот.

«JSON

Управление пакетами. Поскольку сложность веб-разработки значительно возросла, разработчики в настоящее время используют инструменты для создания пакета своего приложения. Это делает приложение более простым в развертывании, и в дальнейшем его также легко вносить изменения и интегрировать изменения. Таким образом, процесс разработки и сопровождения становится проще. Доступно множество инструментов управления пакетами, а именно Bower, Yomen, NPM (Node Package Manager) и т. Д. Большинство из этих инструментов используют файл package.json, в котором находятся метаданные (например, имя, версия, описание, структура файла, зависимости, лицензия). информация и т. д.) написаны.

Ниже приведен файл package.json из Twitter Bootstrap.


{
    "name": "bootstrap"
  , "description": "Sleek, intuitive, and powerful front-end framework for faster and easier web development."
  , "version": "2.3.2"
  , "keywords": ["bootstrap", "css"]
  , "homepage": "http://twitter.github.com/bootstrap/"
  , "author": "Twitter Inc."
  , "scripts": { "test": "make test" }
  , "repository": {
      "type": "git"
    , "url": "https://github.com/twitter/bootstrap.git"
  }
  , "licenses": [
    {
        "type": "Apache-2.0"
      , "url": "http://www.apache.org/licenses/LICENSE-2.0"
    }
  ]
  , "devDependencies": {
      "uglify-js": "1.3.4"
    , "jshint": "0.9.1"
    , "recess": "1.1.8"
    , "connect": "2.1.3"
    , "hogan.js": "2.0.0"
  }
}

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

Что вы узнаете в руководствах по JSON в w3resource

Вот краткое изложение учебников, которые вы встретите в нашей серии руководств по JSON.

  • Подробное обсуждение структур данных и значений, которые вы можете использовать в JSON.
  • Различные инструменты, которые вы можете использовать для просмотра JSON онлайн .
  • Как использовать JSONLint для проверки JSON .
  • Несколько примеров с объяснениями JSON .
  • Работа с PHP и JSON . Мы обсудили установку, как различные функции PHP, чтобы изучить возможности JSON.
  • Работа с JavaScript и JSON . JSON - это встроенный объект в JavaScript. Мы обсудили, как преобразовать JSON в строку и строку в JSON.
  • Чтобы выбрать определенные части данных JSON, вы можете использовать JSON Path . Мы обсудили, как использовать JavaScript и PHP для работы с JSON Path.
  • Если вы отправляете запрос для извлечения данных, находящихся в домене, отличном от домена, из которого отправляется запрос, вы должны использовать JSONP, чтобы преодолеть узкое место междоменного совместного использования ресурсов. Мы обсудили JSONP в отдельном руководстве в этой серии.
  • Мы также обсудили BSON , вариант JSON, используемый в MongoDb для хранения данных.

Заключение

Будет хорошей идеей кратко рассказать о том, что мы узнали из этого вводного руководства по JSON. вот так-

  • JSON - это открытый, облегченный текстовый формат обмена данными, определенный как RFC4627, который появился в мире разработчиков в 2005 году, и его популярность быстро растет.
  • JSON использует Object и Array в качестве структур данных и строк, число, true, false и null в качестве значений. Объекты и массивы могут быть вложены рекурсивно.
  • Большинство (если не все) современные языки программирования могут использоваться для работы с JSON.
  • Базы данных NoSQL, разработанные для устранения узких мест в реляционных базах данных, используют JSON для хранения данных.
  • JSON дает разработчикам возможность выбирать между XML и JSON, что обеспечивает большую гибкость.
  • Помимо NoSQL, AJAX, управление пакетами и интеграция API-интерфейсов с веб-приложением являются основными областями, в которых широко используется JSON.

Надеемся, что это руководство хорошо подготовит почву для изучения JSON с помощью наших последующих руководств. Кстати, мы находимся в процессе серьезного обновления наших нынешних учебных пособий по JSON, будет добавлено более полезное содержимое, чтобы предоставить нашим пользователям более качественный и улучшенный учебный материал. Подпишитесь на нашу RSS ленту, чтобы оставаться в курсе.

Далее: Структуры JSON

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code