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

J SON.simple — простая Java библиотека для работы с данными в формате JSON, полностью совместимая со спецификацией RFC4627 — The application/json Media Type for JavaScript Object Notation (JSON) .

Добавление JSON.simple к проекту

Для добавления библиотеки к своему проекту ее можно скачать с официального сайта проекта .

Если Вы используете maven, до для подключения JSON.simple надо определить зависимость:

com.googlecode.json-simple json-simple 1.1.1

Запись JSON данных в файл

Пример формирования JSON данных с помощью объектов типа JSONObject и JSONArray с последующей записью результирующей JSON строки в файл file.json .

Package ru.j4web.examples.java.json.jsonsimpleexample; import java.io.FileWriter; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; import org.json.simple.JSONArray; import org.json.simple..json"; public static void main(String args) { JSONObject object = new JSONObject(); object.put("name", "j4web"); object..put("age", 2); JSONArray messages = new JSONArray(); messages.add("Message 1"); messages.add("Message 2"); messages.add("Message 3"); object.put("messages", messages); try (FileWriter writer = new FileWriter(FILENAME)){ writer.write(object.toJSONString()); writer.flush(); writer.close(); } catch (IOException ex) { Logger.getLogger(JsonSimpleExample.class.getName()) .log(Level.SEVERE, null, ex); } } } {"site":"https://сайт","age":2,"name":"j4web","messages":["Message 1","Message 2","Message 3"]}

Чтение JSON данных из файла

Пример использования объекта типа JSONParser для чтения данных в формате JSON. В качестве источника данных мы будем использовать файл file.json , сгенерированный в предыдущем примере.

Package ru.j4web.examples.java.json.jsonsimpleparserexample; import java.io.FileReader; import java.io.IOException; import java.util.Iterator; import java.util.logging.Level; import java.util.logging.Logger; import org.json.simple.JSONArray; import org.json.simple.JSONObject; import org.json.simple.parser.JSONParser; import org.json.simple.parser..json"; public static void main(String args) { JSONParser parser = new JSONParser(); try { JSONObject object = (JSONObject) parser.parse(new FileReader(FILENAME)); // Получаем имя String name = (String) object.get("name"); System.out.println("Name: " + name); // Получаем сайт String site = (String) object.get("site"); System.out.println("Site: " + site); // Получаем возраст Long age = (Long) object.get("age"); System.out.println("Name: " + age); // Получаем сообщения JSONArray messages = (JSONArray) object.get("messages"); System.out.println("Messages:"); Iterator iterator = messages.iterator(); while(iterator.hasNext()) { System.out.println("> " + iterator.next()); } } catch (IOException | ParseException ex) { Logger.getLogger(JsonSimpleParserExample.class.getName()) .log(Level.

В этой статье я хочу рассказать о текстовом формате обмена данными — 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 является частью стандарта ECMAScript начиная с 1999 года, когда ECMA определила функцию eval() воспринимающую формат. Он стал набирать популярность вместе с нарастающим успехом Ajax. Слово JSON часто появляется когда кто-нибудь заводит речь об Ajax. Известно, что JSON является другим форматом данных, что он замещает XML, и что многие программисты активно поддерживают его. Но что такое в действительности JSON и в чем его преимущества?

Почему JSON?

Преимущество JSON заключается в том, что он распознается в JavaScript. Нет необходимости разбирать документ, как это происходит с XML, для передачи данных через интернет.

JSON и XML

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

  • Простой для чтения и понимания.
  • Простой для использования.

Преимущества XML:

  • Имеет возможности расширения

И XML и JSON имеют возможность интегрировать большой объем данных в бинарной форме.

Синтаксис JSON

Компоненты JSON:

  • Объекты: содержат объекты или атрибуты.
  • Скалярные переменные: число, строка, логическая переменная.
  • Массив.
  • Литеральные значения: null , true , false , "строка символов ", и числовые значения.
Объект

Содержит элемент или список элементов, где каждый элемент описывается следующим образом:

"имя" : "значение"

Синтаксис объекта:

{ элемент, элемент, .... }

Массив

Набор значений, разделенных запятой.

[ значение, значение, ....]

Значение

Значение может быть: объектом, массивом, литеральным значением (строка, число, true , false , null ).

Для создания JSON файла больше ничего не нужно!

Пример JSON файла

Простой пример структура меню. В данном объекте содержатся атрибуты и массив, который включает другие объекты строки меню.

{ "menu": "Файл", "commands": [ { "title": "Новый", "action":"CreateDoc" }, { "title": "Открыть", "action": "OpenDoc" }, { "title": "Закрыть", "action": "CloseDoc" } ] } Эквивалент на XML: Файл Новый CreateDoc Открыть OpenDoc Закрыть CloseDoc

Как использовать формат

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

Клиентская часть (браузер)

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

Серверная часть

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

Обмен данными
  • с использованием XMLHttpRequest.

Файл JSON обрабатывается функцией JavaScript eval() . Отправка файла на сервер может быть выполнена с помощью XMLHttpRequest . Файл отправляется как текстовый и обрабатывается парсером языка программирования, который используется на сервере.

Пример

Код XMLHttpRequest:

Var req = new XMLHttpRequest(); req.open("GET", "file.json", true); req.onreadystatechange = myCode; // обработчик req.send(null);

Обработчик JavaScript:

Function myCode() { if (req.readyState == 4) { var doc = eval("(" + req.responseText + ")"); } } Использование данных: var menuName = document.getElementById("jsmenu"); // ищем поле menuName.value = doc.menu.value; // назначаем значение полю Как получать данные: doc.commands.title // читаем значение поля "title" в массиве doc.commands.action // читаем значение поля "action" в массиве

Что такое JSON и на что он способен? В этой статье вы узнаете, как использовать JSON для легкой работы с данными. Так же мы рассмотрим, как работать с JSON используя при этом PHP и JavaScript.

Если вы разрабатывали вебсайты или веб-приложения в целом, вероятней всего вы слышали о JSON, по крайней мере, мимолетом. Но, что конкретно значит JSON? Что может делать этот формат данных и как им пользоваться?

В этой статье мы узнаете основы работы с json форматом. Мы будем следовать следующим темам:

  • Что такое JSON формат?
  • Как создавать JSON строки?
  • Простой пример JSON данных
  • Сравнение JSON с XML

Давайте начнем!

Что такое JSON формат?

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

После создания JSON строки, ее легко можно пересылать в любое приложение или компьютер, так как это всего лишь текст.

JSON имеет много преимуществ:

  • Он компактный
  • Он понятен для людей и легко считывается компьютером
  • Его легко можно преобразовать в программные форматы: числовые значения, строки, булевой формат, нулевое значение, массивы и ассоциативные массивы.
  • Почти все программные языки имеют функции, позволяющие считывать и создавать json формат данных.

Буквально, аббревиатура JSON означает - JavaScript Object Notation. Как описано ранее, этот формат основан на создании объектов, что-то подобное к ассоциативным массивам в других языках программирования.

Для каких целей используется JSON?

Более всего, json используется для обмена данными между javascript и серверной стороной (php). Другими словами, для технологии ajax. Это очень удобно, когда вы передаете несколько переменных или целые массивы данных.

Как это выглядит на примере:

  • Пользователь кликает по превьюшке картинки
  • JavaScript обрабатывает это событие и посылает ajax запрос к PHP скрипту, передавая ID картинки.
  • На сервере, php получает описание картинки, имя картинки, адрес к большому изображению и другую информацию из базы данных. Получив, преобразовывает в JSON формат и отправляет обратно на страницу пользователя.
  • JavaScript получает ответ в виде JSON, обрабатывает данные, формирует html код и выводит увеличенное изображение с описанием и другой информацией.
  • Так происходит увеличение картинки, без перезагрузки страницы в браузере. Это очень удобно, когда нам необходимо получить частичные данные, или передать небольшой объем информации на сервер.

    Всеми любимый jQuery, имеет функции getJSON() и parseJSON(), которые помогают работать с форматом через ajax запросы.

    Как создавать JSON строки?


    Ниже предоставлены основные правила создания JSON строк:

    • JSON строка содержит как массив значений, так и объект (ассоциативный массив с парами имя/значение).
    • Массив должен быть обвернут в квадратные скобки, [ и ], может содержать список значений, которые отделяются через кому.
    • Объекты обворачиваются с помощью фигурных дужек, { и }, также содержат разделенные комой пары имя/значение.
    • Пары имя/значение состоят из имя поля (в двойных кавычках), после чего следует двоиточие (:) , после значение данного поля.
    • Значения в массиве или объекте могут быть:
      • Числовые (целые или дробные с точкой)
      • Строковые (обвернутые в двойные кавычки)
      • Логические (true или false)
      • Другие массивы (обвернутые в квадратные скобки [ и ])
      • Другие объекты (обвернутые в фигурные дужки { и })
      • Нулевое значение (null)

    Важно! Если вы используете двойные кавычки в значениях, экранируйте их с помощью обратного слеша: \". Также можно использовать hex закодированные символы, так как вы это делаете в других программных языках.

    Простой пример JSON данных

    Следующий пример показывает, как можно сохранять данные в «корзине» интернет магазина с помощью JSON формата:

    { "orderID": 12345, "shopperName": "John Smith", "shopperEmail": "[email protected]", "contents": [ { "productID": 34, "productName": "SuperWidget", "quantity": 1 }, { "productID": 56, "productName": "WonderWidget", "quantity": 3 } ], "orderCompleted": true }

    Давайте разберем эти данные по частям:

  • В начале и конце мы использует фигурные дужки { и }, которые дают понять, что это объект.
  • Внутри объекта мы имеем несколько пар имя/значение:
  • "orderID": 12345 - поле с именем orderId и значение 12345
  • "shopperName": "John Smith" - поле с именем shopperName и значение John Smith
  • " shopperEmail": " johnsmith@ example. com" - подобно, как и в предыдущем поле, здесь храниться email покупателя.
  • "contents": [ ... ] - поле с именем content, значение которого массив.
  • "orderCompleted": true - поле с именем orderCompleted, значение которого true
  • Внутри массива contents, мы имеем два объекта, которые отображают содержимое корзины. Каждый объект продукта имеет три свойства: productID, productName, quantity.
  • На последок, так как JSON идентичен с объектами в JavaScript, вы легко можете взять этот пример и создать из него JavaScript объект:

    var cart = { "orderID": 12345, "shopperName": "John Smith", "shopperEmail": "[email protected]", "contents": [ { "productID": 34, "productName": "SuperWidget", "quantity": 1 }, { "productID": 56, "productName": "WonderWidget", "quantity": 3 } ], "orderCompleted": true };

    Сравнение JSON с XML

    В большинстве случаев, вы будете думать о JSON как альтернативе XML формату - по крайней мере в рамках веб приложений. Концепция Ajax, в оригинале использует XML для обмена данными между сервером и браузером, но в последние годы JSON стал более популярным для передачи ajax данных.

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

    Вот вышеописанный JSON пример, только переписанный в XML формате:

    orderID 12345 shopperName John Smith shopperEmail [email protected] contents productID 34 productName SuperWidget quantity 1 productID 56 productName WonderWidget quantity 3 orderCompleted true

    Как видите в несколько раз длиннее нежели JSON. По факту, этот пример длинной 1128 символов, в то время, как JSON версия всего лишь 323 символа. Также XML версию сложнее читать.

    Естественно, нельзя судить только по одному примеру, но даже небольшие объемы информации занимают меньше места в JSON формате, нежели в XML.

    Как работать с JSON через PHP и JS?

    Вот мы и подошли к самому интересному - практической стороне JSON формата. Сначала отдадим дань JavaScript’у, после посмотрим, как можно манипулировать с JSON через PHP.

    Создание и чтение JSON формата с помощью JavaScript


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

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

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

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

    Давайте посмотрим, как это делается в JavaScript.

    Создаем JSON строку из JavaScript переменной

    JavaScript имеет встроенный метод, JSON.stringify(), который принимает переменную javascript и возвращает json строку репрезентируя содержимое переменной. Для примера, воспользуемся ранее созданным объектом, сконвертируем его в JSON строку.

    var cart = { "orderID": 12345, "shopperName": "John Smith", "shopperEmail": "[email protected]", "contents": [ { "productID": 34, "productName": "SuperWidget", "quantity": 1 }, { "productID": 56, "productName": "WonderWidget", "quantity": 3 } ], "orderCompleted": true }; alert (JSON.stringify(cart));

    Вот что выведется на экран:

    {"orderID":12345,"shopperName":"John Smith","shopperEmail":"[email protected]", "contents":[{"productID":34,"productName":"SuperWidget","quantity":1}, {"productID":56,"productName":"WonderWidget","quantity":3}], "orderCompleted":true}

    Заметьте, что JSON.stringify() выводит JSON строки без пробелов. Сложно читать, но так более компактно, что важно при пересылке данных.

    Создаем JavaScript переменную из JSON строки

    Существует несколько способов парсинга JSON строк, наиболее приемлем и безопасный используя JSON.parse() метод. Он принимает JSON строку и возвращает JavaScript объект или массив содержащий данные JSON. Вот пример:

    var jsonString = " \ { \ "orderID": 12345, \ "shopperName": "John Smith", \ "shopperEmail": "[email protected]", \ "contents": [ \ { \ "productID": 34, \ "productName": "SuperWidget", \ "quantity": 1 \ }, \ { \ "productID": 56, \ "productName": "WonderWidget", \ "quantity": 3 \ } \ ], \ "orderCompleted": true \ } \ "; var cart = JSON.parse (jsonString); alert (cart.shopperEmail); alert (cart.contents.productName);

    Здесь мы создавали переменную, jsonString, которая содержит JSON строку из ранее предоставленных примеров. После чего пропускали эту строку через JSON.parse() для создания объекта содержащего JSON данные, которые хранятся в cart переменной. На конец, мы проверяем наличие данных и выводим некоторую информацию средствами модального окна alert.

    Выведется следующая информация:

    В реальном веб приложении, ваш JavaScript код должен принимать JSON строку как ответ от сервера (после посылки AJAX запроса), после чего парсите строку и выводите данные о содержимом корзины пользователю.

    Создание и чтение JSON формата с помощью PHP


    PHP, подобно JavaScript’у, имеет функции позволяющие конвертировать переменные в JSON формат, и наоборот. Давайте рассмотрим их.

    Создание JSON строки из PHP переменной

    Json_encode() принимает PHP переменную и возвращает JSON строку, репрезентируя данные переменной. Вот наш пример «корзины» написанный на PHP:

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

    {"orderID":12345,"shopperName":"John Smith","shopperEmail":"[email protected]","contents":[{"productID":34,"productName":"SuperWidget","quantity":1},{"productID":56,"productName":"WonderWidget","quantity":3}],"orderCompleted":true}

    В реалии, ваш PHP скрипт должен посылать JSON строку как ответ на AJAX запрос, где JavaScript будет использовать JSON.parse() для превращения строки в переменные.

    В функции json_encode() можно указывать дополнительные параметры, позволяющие конвертировать некоторые символы в hex.

    Создание PHP переменной из JSON строки

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

    Как и в случае с JavaScript, этот код выведет следующее:

    [email protected] WonderWidget

    По умолчанию, json_decode() возвращает JSON объекты как PHP объекты. Подобно привычному синтаксису, мы используем -> для доступа к свойствам объекта.

    Если в дальнейшем вы захотите использовать данные в виде ассоциативного массива, просто передайте вторым параметров true в функции json_decode(). Вот пример:

    $cart = json_decode($jsonString, true); echo $cart["shopperEmail"] . "
    "; echo $cart["contents"]["productName"] . "
    ";

    Это выводит тот же результат:

    [email protected] WonderWidget

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

    В заключение о JSON формате

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


    Похожие статьи