|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Сравнение JSON и XMLСтр 1 из 2Следующая ⇒
JSON (англ. JavaScriptObjectNotation, обычно произносится как /ˈdʒeɪsən/[1]) — текстовый формат обмена данными, основанный на JavaScript и обычно используемый именно с этим языком. Как и другие текстовые форматы, JSON легко читается людьми. Формат JSON был разработан Дугласом Крокфордом[2]. Несмотря на происхождение от JavaScript, формат считается независимым от языка и может использоваться практически с любым языком программирования. Для многих языков существует готовый код для создания и обработки данных в формате JSON. Данные в формате 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: · Строка JSON содержит либо массив значений, либо объект (ассоциативный массив пар имя/значение). · Массив заключается в квадратные скобки ([ и ]) и содержит разделенный запятой список значений. · Объект заключается в фигурные скобки ({ и }) и содержит разделенный запятой список пар имя/значение. · Пара имя/значение состоит из имени поля, заключенного в двойные кавычки, за которым следует двоеточие (:) и значение поля. · Значение в массиве или объекте может быть: o Числом (целым или с плавающей точкой) o Строкой (в двойных кавычках) o Логическим значением (true или false) o Другим массивом (заключенным в квадратные скобки) o Другой объект (заключенный в фигурные скобки) o Значение null Чтобы включить двойные кавычки в строку, нужно использовать обратную косую черту: \". Так же, как и во многих языках программирования, можно помещать управляющие символы и шестнадцатеричные коды в строку, предваряя их обратной косой чертой. Ниже приводится пример оформления заказа в формате JSON:
Рассмотрим строку подробно: · Мы создаем объект с помощью фигурных скобок ({ и }). · В объекте есть несколько пар имя/значение: "orderID": 12345 Свойство с именем "orderId" и целочисленным значением 12345 "shopperName": "Ваня Иванов" свойство с именем "shopperName" и строковым значением "Ваня Иванов" "shopperEmail": "johnsmith@example.com" Свойство с именем "shopperEmail" и строковым значением"ivanov@example.com" "contents": [ ... ] Свойство с именем "contents", значение которого является массивом "orderCompleted": true Свойство с именем "orderCompleted" и логическим значениемtrue · В массиве "contents" есть 2 объекта, представляющие отдельные позиции в заказе. Каждый объект содержит 3 свойства: productID, productName, и quantity. Кстати, так как JSON основан на объявлении объектов JavaScript, то вы можете быстро и просто сделать выше приведенную строку JSON объектом JavaScript:
Сравнение JSON и XML Во многих отношениях вы можете рассматривать JSON как альтернативу XML, по крайней мере, в сфере веб приложений. Концепция AJAX оригинально основывалась на использовании XML для передачи данных между сервером и браузером. Но в последние годы JSON становится все более популярным для переноса данных AJAX. Хотя XML является проверенной технологией, которая используется в достаточном количестве приложений, преимуществами JSON являются более компактный и простой для распознавания формат данных. Вот как будет выглядеть выше приведенный пример объекта на XML:
Версия XML имеет существенно больший размер. В действительности она имеет длину 1128 символов, а вариант JSON - только 323 символа. Версию XML также достаточно трудно воспринимать. Конечно, это радикальный пример. И возможно создать более компактную запись XML. Но даже она будет существенно длиннее эквивалента на JSON. В Android есть готовые классы для работы с JSON: JSONObject, JSONArray, JSONWriter, JSONStringer и т. д. В той статье мы рассмотрим все методы классов JSONObject и JSONArray и приведем примеры их использования. JSONObject Собственно сам класс, в котором хранятся пары ключ/значение. try{ JSONObject jsonObject = new JSONObject("{"name":"Иван"}"); } catch (JSONException e){} getBoolean(String key), getDouble(String key), getInt(String key), getLong(String key), getString(String key) ищетстрокупоключуивозвращаетее, еслионаесть. try{ JSONObject jsonObject = new JSONObject("{"name":"Елена"}"); String name = jsonObject.getString("name"); Log.d("json", jsonObject); Log.d("json", "Имя " + name); } catch (JSONException e){} getJSONArray(Stringkey) — ищетзначениепоключуивозвращаетобъекткласса JSONArray, еслионесть. getJSONObject(Stringkey) — ищет значение по ключу и возвращает объект класса JSONObject, если он есть. getNames(JSONObjectjo) — статический метод класса JSONObject, возвращает массив имен, которые содержит объект. has(Stringkey) — проверяет, содержит ли объект указанный ключ.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|