Протокол json и работа с ним. Открываем файлы JSON

08.02.2019

Урок, в котором рассматривается, что такое JSON и какие он имеет преимущества по сравнению с другими форматами данных.

Понятие JSON

JSON (JavaScript Object Notation) - это текстовый формат представления данных в нотации объекта JavaScript.

Это означает то, что данные в JSON организованы, так же как и в объекте JavaScript. Но в отличие от последнего формат записи JSON имеет некоторые особенности, которые будут рассмотрены немного позже.

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

Структура формата JSON

Кто знаком с процессом создания объектов в JavaScript, не увидит ни чего нового в структуре формата JSON. Это связано с тем, что структура JSON соответствует структуре объекта JavaScript с некоторыми ограничениями.

Более просто представить себе JSON можно как контейнер, состоящий из элементов. Каждый элемент в таком контейнере - это некоторая структурная единица, состоящая из ключа и значения.

При этом значение напрямую связано с ключом и образуют так называемую пару ключ-значение. Для того чтобы получить значение в таком объекте, необходимо знать его ключ. Синтаксически такие данные в JSON записываются следующим образом:

В вышеприведенной записи видно, что ключ отделяется от значения с помощью знака двоеточия (:). При этом ключ в объекте JSON обязательно должен быть заключен в двойные кавычки. Это первая особенность JSON, которая его отличает от объекта JavaScript . Т.к. в объекте JavaScript ключ (свойство объекта) не обязательно должен быть заключён в двойные кавычки.

Например, структура объекта, которая является валидной с точки зрения JavaScript и не валидной с точки зрения JSON:

Var person = { name: "Иван"; } // объект JavaScript

Предупреждение: имя ключу старайтесь задавать так чтобы не усложнить доступ к данным, т.е. при составлении имени предпочтительно придерживаться верблюжьей нотации или использовать для соединения слов знак нижнего подчёркивания ("_").

Значение ключа в JSON может быть записано в одном из следующих форматов: string (строкой), number (числом), object (объектом), array (массивом), boolean (логическим значением true или false), null (специальным значением JavaScript).

Это второе ограничение в JSON, т.к. объект JavaScript может содержать любой тип данных, включая функцию .

Var person = { "name" : "Иван"; "setName": function() { console.log(this.name); } } // объект JavaScript

Для отделения одного элемента (пары ключ-значение) от другого используется знак запятая (,).

Например, рассмотрим JSON, состоящий из различных типов данных.

Внимание: формат представления данных JSON не допускает использование внутри своей структуры комментариев.

Работа с JSON в JavaScript

В отличие от объекта JavaScript JSON представляет собой строку.

Например:

// например переменная personData, содержит строку, которая представляет из себя JSON var personData = "{"name":"Иван","age":37,"mother":{"name":"Ольга","age":58},"children":["Маша","Игорь","Таня"],"married": true,"dog": null}";

Работа с JSON обычно ведётся в двух направлениях:

  • Парсинг - это перевод строки, содержащей JSON, в объект JavaScript.
  • Конвертирование объекта JavaScript в строку JSON. Другими словами, это действие выполняет преобразование обратное парсингу.
  • Парсинг JSON

    Парсинг JSON, т.е. перевод строки JSON в объект JavaScript, осуществляется с помощью метода eval() или parse() .

    Использование метода eval():

    // переменная person - это объект JavaScript, который получен путём выполнения кода (строки) JSON var person= eval("("+personData+")");

    Использование метода JSON.parse():

    // переменная person - это объект JavaScript, который получен путём парсинга строки JSON var person = JSON.parse(personData);

    Конвертирование объекта JavaScript в строку JSON

    Перевод объекта JavaScript в строку JSON осуществляется с помощью метода JSON.stringify() . Данный метод осуществляет действие обратное методу JSON.parse() .

    Var personString = JSON.strigify(person);

    Преимущества формата JSON

    Формат представления данных JSON имеет следующие преимущества:

    • удобные и быстрые в работе методы, предназначенные для конвертации (парсинга) строки JSON в объект JavaScript и обратно;
    • понятная и простая структура данных;
    • очень маленький размер по сравнению с другими форматами данных (например XML). Это связано с тем, что формат JSON содержит минимальное возможное форматирование, т.е. при его написании используется всего несколько специальных знаков. Это очень важное преимущество, т.к. данные представленные в формате JSON будут быстрее загружаться, чем, если бы они были бы представлены в других форматах.

    Из-за того что данный формат имеет очень много преимуществ он стал применяться не только в JavaScript, но и во многих других языках, таких как C, Ruby, Perl, Python, PHP и т.д.

    Сравнение форматов JSON и XML

    Формат JSON имеет следующие преимущества перед форматом XML:

  • При передаче некоторых данных размер JSON будет значительно меньше, чем размер XML.
  • JSON имеет более удобные методы конвертации в структуры данных JavaScript, чем XML.
  • JSON более просто создавать, чем XML.
  • Работа с данными JSON после парсинга осуществляется как с объектом JavaScript.

    //JSON var personData = "{"name":"Иван","age":37,"mother":{"name":"Ольга","age":58},"children":["Маша","Игорь","Таня"],"married": true,"dog": null}"; //Объект JavaScript person var person = JSON.parse(personData);

    Рассмотрим основные моменты:

    //получить значения ключа (свойства) name person.name; person["name"]; //получить значения ключа (свойства) name, находящегося в объекте mother person.mother.name; //удалить элемент age delete(person.age) //добавить (или обновить) ключ (свойство) person.eye = "карие"; //при работе с массивами необходимо использовать методы, предназначенные для работы именно с массивами //удалить 1 элементиз массива (метод splice) person.children.splice(1,1) //добавить элемент в массив (метод push) person.children.push("Катя");

    Для перебора элементов в объекте можно использовать цикл for..in:

    For (key in person) { if (person.hasOwnProperty(key)) { //ключ = key //значение = person console.log("Ключ = " + key); console.log("Значение = " + person); } // если объект person имеет key (если у person есть свойство key) } // перерабрать все ключи (свойства) в объекте

    Для перебора элементов массива можно использовать следующий цикл:

    For (var i=0; i

    В этой статье я хочу рассказать о текстовом формате обмена данными — JSON, а именно — про работу с этим форматом в PHP.

    JSON — компактный текстовый формат данных. Может применяться как в интернет-службах передачи данных, так и для хранения информации в структурированном виде.

    JSON (англ. JavaScript Object Notation ) — текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком. Как и многие другие текстовые форматы, JSON легко читается людьми.

    Несмотря на происхождение от JavaScript (точнее, от подмножества языка стандарта ECMA-262 1999 года), формат считается языконезависимым и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON.

    Практическая польза использования JSON открывается при использовании технологии AJAX . Формат JSON является более кратким и удобочитаемым по сравнению с XML , является «родным» для Javascript. Кроме того, в JSON-код возможна вставка вполне работоспособных функций.

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

    Вид данных в формате JSON

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

    Приведем пример представления данных в формате JSON:

    {"id":"1","name":"ivan","country":"Russia","office":["yandex","management"]}

    Давайте разберем, что этой строкой можно передать: человек с именем «ivan», под идентификатором «1», проживающий в стране «Russia» работает в компании «yandex» в отделе «management».

    Приведем еще один пример. На сайте имеется форма обратной связи, работающая по технологии AJAX . Посетитель заполняет информацию, далее она отправляется на сервер для проверки, если ошибок не найдено, информация сохраняется в базу данных и отправляется ответ об успешном сохранении. Но если найдены ошибки, то возвращается ответ с типами ошибок.

    Пример ответа об ошибке в формате JSON:

    {"error":"1","errorcode":["empty_pers","empty_mail","empty_phone","empty_letter","empty_scode"]}

    Что, к примеру, означает:

    • Необходимо заполнить поле «Контактное лицо»
    • Необходимо заполнить поле «E-mail»
    • Необходимо заполнить поле «Телефон»
    • Введите текст сообщения
    • Необходимо заполнить поле «Число на картинке»

    В случае, если ошибок нет, то возвращается ответ:

    {"error":"0"}

    Что говорит об успешной отправке данных.

    В PHP, для представления данных в формате JSON служит расширение JSON extension . В версиях PHP старше 5.2.0 поддержка JSON встроена в ядро, в более ранних версиях необходимо подключать к вашему скрипту дополнительный файл с функциями.

    Итак в PHP, за работу с данными в формате JSON отвечают две функции: json_encode() и json_decode() .

    Конвертация данных в формат JSON $json_data = array ("id"=>1,"name"=>"ivan","country"=>"Russia","office"=>array("yandex"," management")); echo json_encode($json_data); Обратное преобразование данных из формата JSON $json_string="{"id":1,"name":"ivan","country":"Russia","office":["yandex"," management"]} "; $obj=json_decode($json_string);

    Теперь в $obj будут содержаться JSON данные переведенные в PHP-объект, доступ к которым вы сможете получить следующим образом:

    Echo $obj->name; //Отобразит имя ivan echo $obj->office; //Отобразит компанию yandex

    Как видите, $obj->office является массивом.

    Foreach($obj->office as $val) echo $val;

    Работа с JSON позволяет обмениваться с сервером данными в «чистом виде» . Полностью отпадает необходимость пересылать громоздкие куски HTML кода.

    JavaScript позволяет нам не только для добавлять интерактивность веб-страницам, но делает возможным выполнять задачи, которые когда-то принадлежали серверам. JSON обеспечивает простой способ для создания и хранения структурированных данных на JavaScript. JSON очень популярен и является отличной альтернативой XML. JSON (объектная нотация JavaScript), как следует из названия, основан на создании объектов javascript. Объектами JavaScript можно легко манипулировать, разбирать, используя тот же JavaScript.

    В отличие от XML, JSON предложения легко составляются как человеком, так и компьютером. Данные в JSON формате можно, например, присвоить переменной (этим мы создаем объект); затем эти данные можно прочитать посредством вновь созданного объекта.

    var data={ "firstName" : "Ray" }; alert(data.firstName);

    Во-первых, мы создаем переменную для хранения наших данных, и затем мы, используя JSON, определяем объект. Наш объект довольно прост: поле firstName и значение Ray . Строки в JSON обязательно заключать в кавычки. Если вы используете числа, кавычки необязательны.

    Данный пример выведет в браузере значение свойства firstName .

    Создание объекта placeholder

    Давайте создадим более реалистичный пример: вставим наши JSON данные в объект DOM.

    var data={"firstName":"Ray"}; document.getElementById("placeholder").innerHTML=data.firstName;

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

    data={ "firstName":"Ray", "lastName":"Villalobos", "joined":2012 }; document.getElementById("placeholder").innerHTML=data.firstName+" "+data.lastName+" "+data.joined;

    Отметьте, что данные JSON, для лучшего понимания, отформатированы определенным образом. Поле "joined" имеет значение 2012, которому не требуются кавычки, так как это число. Давайте рассмотрим что-то более сложное.

    Добавляем массивы

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

    Var data={"users":[ { "firstName":"Ray", "lastName":"Villalobos", "joined":2012 }, { "firstName":"John", "lastName":"Jones", "joined":2010 } ]} document.getElementById("placeholder").innerHTML=data.users.firstName + " " + data.users.lastName+" "+ data.users.joined;

    Выглядит немного сложнее, но в действительности не сложно для понимания. Объект JSON создается при помощи фигурных скобок; массив создается при помощи квадратных скобок. Итак, чтобы организовать наши данные, мы создали объект users , в который поместили массив. В массиве располагаются другие объекты. Каждая пара (имя/значение) разделяются запятой.

    Обратите внимание, как изменился код для вставки имени. Мы подключили новый объект users и затем при помощи квадратных скобок указали на первый элемент в массиве. Добавим еще один уровень к структуре наших данных.

    Var data={"users":[ { "firstName":"Ray", "lastName":"Villalobos", "joined": { "month":"January", "day":12, "year":2012 } }, { "firstName":"John", "lastName":"Jones", "joined": { "month":"April", "day":28, "year":2010 } } ]} document.getElementById("placeholder").innerHTML=data.users.firstName + " " + data.users.lastName+"--"+ data.users.joined.month;

    Теперь свойство joined содержит объект с несколькими полями; использовать массив нет необходимости, поэтому мы используем объектную нотацию. Теперь у нас есть данные на нескольких пользователей, пришло время пройтись по каждому пользователю и вывести их в списке.

    Реализуем список из пользователей (проходим по объекту JSON)

    Итак, воспользуемся javascript"ом и создадим список пользователей.

    Var data = { "users":[ { "firstName":"Ray", "lastName":"Villalobos", "joined": { "month":"January", "day":12, "year":2012 } }, { "firstName":"John", "lastName":"Jones", "joined": { "month":"April", "day":28, "year":2010 } } ]} var output="

      "; } output+="
    "; document.getElementById("placeholder").innerHTML=output;

    Для перебора всех свойств объекта существует конструкция for..in :

    For(var key in object) { // key - название свойства // object - значение свойства... }

    Здесь мы, проходимся по всем элементам массива; сохраняем данные в переменной output и помещаем данные в элемент с id равным placeholder . вы можете сказать, что наши данные строятся немного медленно.

    Читаем JSON из внешнего файла

    Было бы неплохо сохранить данные на внешний файл и прочитать их по мере надобности. Я собираюсь использовать библиотеку jQuery и поэтому для начала нам потребуется подключить библиотеку jQuery; затем вызовем функцию getJSON . Вот как выглядит наш код:

    JSON Sample $.getJSON("data.json", function(data) { var output="

      "; for (var i in data.users) { output+="
    • " + data.users[i].firstName + " " + data.users[i].lastName + "--" + data.users[i].joined.month+"
    • "; } output+="
    "; document.getElementById("placeholder").innerHTML=output; });

    В значительной степени это тот же самый код, но данные выведены наружу. Мы просто обернули все функцией getJSON , которая делает всю тяжелую работу по чтению файла. Файл с данными data.json, предположим, находится в том же каталоге и выглядит следующим образом:

    {"users":[ { "firstName":"Ray", "lastName":"Villalobos", "joined": { "month":"January", "day":12, "year":2012 } }, { "firstName":"John", "lastName":"Jones", "joined": { "month":"April", "day":28, "year":2010 } } ]}

    Как видите, JSON реально легко читается, и как только вы привыкните в скобкам, вам станет легко кодировать.

    JSON (JavaScript Object Notation) – это формат передачи данных. Из названия видно, что формат основан на языке программирования JavaScript, однако он доступен и в других языках (Python, Ruby, PHP, Java).

    JSON использует расширение.json. При использовании его в других файловых форматах (например, .html) строка JSON берётся в кавычки или присваивается переменной. Этот формат легко передаётся между веб-сервером и клиентом или браузером.

    Легковесный и простой для восприятия JSON – отличная альтернатива XML.

    Данное руководство ознакомит вас с преимуществами, объектами, общей структурой и синтаксисом JSON.

    Синтаксис и структура JSON

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

    Объект JSON выглядит так:

    "first_name" : "John",
    "last_name" : "Smith",
    "location" : "London",
    "online" : true,
    "followers" : 987

    Это очень простой пример. Объект JSON может содержать множество строк.

    Как видите, объект состоит из пар «ключ-значение», которые заключены в фигурные скобки. Большая часть данных в JSON записывается в виде объектов.

    Между ключом и значением ставится двоеточие. После каждой пары нужно поставить запятую. В результате получается:

    "key" : "value", "key" : "value", "key": "value"

    Ключ в JSON находится слева. Ключ нужно помещать в двойные кавычки. В качестве ключа можно использовать любую валидную строку. В рамках одного объекта все ключи должны быть уникальны. Ключ может содержать пробел («first name»), но при программировании могут возникнуть проблемы с доступом к такому ключу. Потому вместо пробела лучше использовать подчеркивание («first_name»).

    Значения JSON находятся в правой части столбца. В качестве значения можно использовать любой простой тип данных:

    • Строки
    • Числа
    • Объекты
    • Массивы
    • Логические данные (true или false)

    Значения могут быть представлены и сложными типами данных (например, объектами или массивами JSON).

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

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

    { "first_name" : "John", "last_name": "Smith", "online" : true, }

    Так обычно записываются данные JSON в файлы другого типа.

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

    "first_name" : "John",
    "last_name" : "Smith",
    "online" : true

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

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

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

    Сложные типы в JSON

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

    Вложенные объекты

    Ниже вы найдёте пример – файл users.json, в котором содержатся данные о пользователях. Для каждого пользователя

    («john», «jesse», «drew», «jamie») в качестве значения передаётся вложенный объект, который, в свою очередь, тоже состоит из ключей и значений.

    Примечание : Первый вложенный объект JSON выделен красным.

    " john" : {
    "username" : " John",
    "location" : "London",
    "online" : true,
    "followers" : 987

    "jesse" : {
    "username" : "Jesse",
    "location" : "Washington",
    "online" : false,
    "followers" : 432

    "drew" : {
    "username" : "Drew",
    "location" : "Paris",
    "online" : false,
    "followers" : 321

    "jamie" : {
    "username" : "Jamie",
    "location" : "Berlin",
    "online" : true,
    "followers" : 654

    Обратите внимание: фигурные скобки используются и во вложенном, и в основном объекте. Запятые во вложенных объектах используются так же, как и в обычных.

    Вложенные массивы

    Данные можно вкладывать в JSON с помощью массивов JavaScript, которые будут передаваться как значения. В JavaScript в начале и в конце массива используются квадратные скобки (). Массив – это упорядоченный набор данных, который может содержать данные различных типов.

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

    {
    "first_name" : "John",
    "last_name" : "Smith",
    "location" : "London",
    "websites" : [

    "description" : "work",
    "URL" : "https://www.johnsmithsite.com/"

    },
    {

    "desciption" : "tutorials",
    "URL" : "https://www.johnsmithsite.com/tutorials"

    "social_media" : [

    "description" : "twitter",
    "link" : "https://twitter.com/johnsmith"

    "description" : "facebook",
    "link" : "https://www.facebook.com/johnsmith"

    "description" : "github",
    "link" : "https://github.com/johnsmith"

    Ключам «websites» и «social_media» в качестве значений присвоены массивы, которые помещаются в квадратные скобки.

    При помощи вложенных массивов и объектов можно создать сложную иерархию данных.

    JSON или XML?

    XML (eXtensible Markup Language) позволяет хранить данные в удобном для восприятия человека и машины виде. Формат XML поддерживается большим количеством языков программирования.

    У XML и JSON очень много общего. Однако XML требует гораздо больше текста, следовательно, такие файлы объёмнее и их сложнее читать и писать. Более того, XML обрабатывается только с помощью интерпретатора XML, а JSON можно обработать с помощью простой функции. В отличие от JSON, XML не может хранить массивы.

    Давайте сравним два файла: они содержат одинаковые данные, но первый написан в формате XML, а второй в JSON.

    users.xml

    John London

    Jesse Washington

    Drew Paris

    Jamie Berlin

    users.json
    {"users": [

    {"username" : "John", "location" : "London"},
    {"username" : "Jesse", "location" : "Washington"},
    {"username" : "Drew", "location" : "Paris"},
    {"username" : "JamieMantisShrimp", "location" : "Berlin"}

    JSON – очень компактный формат, и он не требует такого количества тегов, как XML. Кроме того, XML, в отличие от JSON, не поддерживает массивы.

    Если вы знакомы с HTML, вы заметили, что формат XML очень похож на него (в частности тегами). JSON проще, требует меньше текста и его проще использовать, например, в приложениях AJAX.

    Конечно, формат нужно выбирать в зависимости от потребностей приложения.

    Инструменты для JSON

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

    Больше информации о совместимости и обработке JSON можно найти на сайте проекта и в библиотеке jQuery .

    Писать JSON с нуля приходится редко. Обычно данные загружаются из исходников или преобразовываются в JSON. Вы можете преобразовать CSV или данные с разделителями табуляцией в JSON с помощью открытого инструмента Mr. Data Converter . Чтобы преобразовать XML в JSON и наоборот, используйте utilities-online.info . При работе с автоматическими инструментами обязательно проверяйте результат.

    Файлы JSON (в том числе и преобразованные данные) можно проверить с помощью сервиса JSONLint . Чтобы протестировать JSON в контексте веб-разработки, обратитесь к JSFiddle .

    Заключение

    JSON – простой и легковесный формат данных. Файлы JSON легко передавать, хранить и использовать.

    Сегодня JSON часто используется в API.

    ECMA-262 1999 года), формат считается языконезависимым и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON . Использование

    За счёт своей лаконичности по сравнению с XML , формат JSON может быть более подходящим для сериализации сложных структур. Если говорить о веб-приложениях, в таком ключе он уместен в задачах обмена данными как между браузером и сервером ( AJAX ), так и между самими серверами (программные HTTP-интерфейсы).

    Поскольку формат JSON является подмножеством синтаксиса языка JavaScript, то он может быть быстро десериализован встроенной функцией eval (). Кроме того, возможна вставка вполне работоспособных JavaScript-функций. В языке PHP , начиная с версии 5.2.0, поддержка JSON включена в ядро в виде функций json_decode() и json_encode(), которые сами преобразуют типы данных JSON в соответствующие типы PHP и наоборот.

    Синтаксис

    JSON -текст представляет собой (в закодированном виде) одну из двух структур:

  • Набор пар ключ:значение . В различных языках это реализовано как объект, запись, структура, словарь, хэш-таблица, список с ключом или ассоциативный массив. Ключом может быть только строка, значением - любая форма.
  • Упорядоченный набор значений. Во многих языках это реализовано как массив, вектор, список или последовательность.
  • Это универсальные структуры данных: как правило, любой современный язык программирования поддерживает их в той или иной форме. Они легли в основу JSON , так как он используется для обмена данными между различными языками программирования.

    В качестве значений в JSON используются структуры:

  • Объект - это неупорядоченное множество пар ключ:значение, заключённое в фигурные скобки "{ }". Ключ описывается строкой, между ним и значением стоит символ ":". Пары ключ-значение отделяются друг от друга запятыми.
  • Массив (одномерный) - это упорядоченное множество значений. Массив заключается в квадратные скобки "". Значения разделяются запятыми.
  • Значение может быть строкой в двойных кавычках, числом, объектом, массивом, одним из литералов: true, false или null. Т.о. структуры могут быть вложены друг в друга.
  • Строка - это упорядоченное множество из нуля или более символов юникода, заключенное в двойные кавычки. Символы могут быть указаны с использованием escape-последовательностей, начинающихся с обратной косой черты "\".

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

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

    Основные методы для работы с JSON в JavaScript - это:

    • JSON.parse - читает объекты из строки в формате JSON.
    • JSON.stringify - превращает объекты в строку в формате JSON, используется, когда нужно из JavaScript передать данные по сети.
    1. Знакомство с методом JSON.parse

    Создадим базовое web-приложение Tizen и назовем его json1 .

    Введем в файле index.html следующий код:


    Рис. 27.2.

    Немного изменим код нашего сценария:

    var numbers = ""; numbers = JSON.parse(numbers); document.write(numbers);


    Рис. 27.3.

    Рассмотрим более интересный случай:

    var user = "{ "name": "Вася", "age": 35, "isAdmin": true, "friends": ["Миша","Маша","Гриша","Гульшат"] }"; user = JSON.parse(user); strMessage = "Имя: " + user.name + "
    " + "Возраст: " + user.age + "
    " + "Администратор: " + user.isAdmin + "
    " + "Друзья: " + user.friends + "
    "; document.write(strMessage);


    Рис. 27.4. 2. Создание объекта из строки JSON

    Этот пример был позаимствован с сайтаhttp://www.w3schools.com/js/js_validation.asp . Создадим проект json2 . В файле index.tml введем следующий код.

    Create Object from JSON String var text = "{"employees":[" + "{"firstName":"John","lastName":"Doe" }," + "{"firstName":"Anna","lastName":"Smith" }," + "{"firstName":"Peter","lastName":"Jones" }]}"; obj = JSON.parse(text); var n=obj.employees.length; strMessage=""; for(i=0;i