Что нового
  • Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

FAQ Json С Radstudio Delphi

Lomanu4

Команда форума
Администратор
Регистрация
1 Мар 2015
Сообщения
1,200
Баллы
155
Введение в JSON и использование его в RadStudio Delphi или C ++ Builder.
[ОБНОВЛЕНИЕ] Для получения более полного примера создания клиентского сервиса RESTful с помощью Delphi и службы RESTful JSON с использованием PHP, просмотрите видеоролик «

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

ролик

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

»!



Что такое JSON?
JSON (JavaScript Object Notation) - популярный формат для инкапсуляции структурированных данных. Если вы знакомы с XML, вы можете рассматривать JSON как выполняющую ту же работу, но эти два очень разные.

Название JSON может привести к некоторой путанице, это язык. Причиной этого является JSON, который является JavaScript, а JavaScript отключен.

Некоторые из привлекательных свойств формата JSON включают:

  • Он читается человеком. Использование JSON - это те дни, когда мы собирали двоичные данные в пакеты с кодировкой и декодированием на каждом конце.JSON записывается как текст, либо в ASCII, либо в текстовом формате Unicode.
  • Это легкий вес. Это верно в том, что это легкий вес. Это связано с тем, что JSON несет в себе множество «отступов» в виде тегов. JSON по-прежнему является более тяжелым, чем нечитаемый метод инкапсуляции, поскольку он является текстом и часто кодируется в формате Unicode переменной длины.
  • Это поддерживается повсюду. JSON сначала поддерживается везде, где JavaScript (что означает, по крайней мере, каждый поддерживающий HTML5 браузер), и только что перешел с C # на C ++ и Delphi.
  • Это легко разобрать. Вероятно, самым большим вкладом в его принятие вне JSON является синтаксический анализ.
Итак, давайте посмотрим, что на самом деле выглядит JSON ...

Структура JSON
JSON - лучший способ понять ситуацию. Для получения большей точности и подробностей

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

документу стандартов JSON

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

.

Давайте посмотрим пример некоторых JSON:

{
«Книга»: {
«Название»: «zen»,
«Субтитры»: «и искусство обслуживания мотоциклов»,
«Автор»: «Роберт М. Пирсиг»,
«Isbn»: «9780061908019»
}
}

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

«Имя»: «значение»

ЕС

"Название": "zen"

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

Разработчики приложений баз данных могут подумать о паре как поле или столбце.

Объекты ...
Вы можете видеть, что наши пары окружены фигурными скобками и вверху.

«Книга»: {
....

}

Хотя это может выглядеть как пара, правая часть не имеет значения, заключенного в кавычки, но вместо этого она имеет открытую скобку, несколько пар, а затем замыкающую фигуру. Эта структура называется объектом. (Обозначения JavaScript OBJECT)
Объектом в этом случае является совокупность пар. Как видно из примера, этот объект называется «книга» и содержит несколько пар, содержащих описательные атрибуты книги.

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

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

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

{
«Книга-1»: {
«Название»: «zen»,
«Субтитры»: «и искусство обслуживания мотоциклов»,
«Автор»: «Роберт М. Пирсиг»,
«Isbn»: «9780061908019»
},

«Книга-2»: {
«Название»: «Кодирование в Delphi»,
"Subtitle": "",
«Автор»: «Ник Ходжес»,
«Исбн»: «978-1941266038»
}
}

В этом примере у меня есть две книги под названием «book-1» и «book-2». Они разделены запятой и являются двумя совершенно разными объектами. Мне пришлось переименовать их, потому что они были бы названы «книгой». Хотя я бы дал одно и то же имя, это будет плохая структура данных, потому что «книга» - это не тип объекта, а имя объекта. Если у меня есть два объекта с именем «книга», у меня нет способа рассказать им обособленно!

К счастью, мы можем представлять несколько объектов (одного типа или иначе) с помощью массива ...

Массивы ...
Пример с несколькими книгами выше

{
«Книги»: [
{
«Название»: «zen»,
«Субтитры»: «и искусство обслуживания мотоциклов»,
«Автор»: «Роберт М. Пирсиг»,
«Isbn»: «9780061908019»
},
{
«Название»: «Кодирование в Delphi»,
"Subtitle": "",
«Автор»: «Ник Ходжес»,
«Исбн»: «978-1941266038»
}]
}

В этом примере вы можете видеть, что мы можем представлять несколько неименованных объектов, разделенных квадратными скобками []. Вот как мы представляем массив объектов данных и для хорошей формы.

Давайте посмотрим, что в колесной студии.
JSON, Object, Pair и Array. Как разработчики Delphi, так и C ++ дали классы с именем «TJSONObject», «TJSONPair», «TJSONArray» соответственно. В следующем примере мы собираемся использовать эти три класса для создания образца JSON, на который мы только что посмотрели.

{
«Книги»: [
{
«Название»: «zen»,
«Субтитры»: «и искусство обслуживания мотоциклов»,
«Автор»: «Роберт М. Пирсиг»,
«Isbn»: «9780061908019»
},
{
«Название»: «Кодирование в Delphi»,
"Subtitle": "",
«Автор»: «Ник Ходжес»,
«Исбн»: «978-1941266038»
}]
}

Давайте напишем некоторый код для создания этой структуры.

В своем выборе Delphi или C ++ Builder вы начинаете с нового приложения и бросаете кнопку и напоминание в своей основной форме.
(VCL или FMX в порядке, я использую VCL)



Теперь использует / включает блок JSON

Объект Паскаль:
Код:
uses[/B][/I]
[B]
[I]  System.JSON;
Добавить событие OnClick ...
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  o: TJSONObject;
  a: TJSONArray;
  book: TJSONObject;
begin
  // Create the outer JSON object which parents the others.
  o := TJSONObject.Create;
  try
    // Create the books object, which contains the array of books...
    a := TJSONArray.Create();

    // add the array to the object.
    o.AddPair('books',a);

    // Create the first book
    book := TJSONObject.Create;
    book.AddPair( TJSONPair.Create('title','Zen') );
    book.AddPair( TJSONPair.Create('subtitle','and The art of motorcycle maintenance.') );
    book.AddPair( TJSONPair.Create('author','Robert M Pirsig') );
    book.AddPair( TJSONPair.Create('isbn','9780061908019') );
    // Add the book to the array
    a.AddElement(book);

    // Create the second book
    book := TJSONObject.Create;
    book.AddPair( TJSONPair.Create('title','Coding in Delphi') );
    book.AddPair( TJSONPair.Create('subtitle','') );
    book.AddPair( TJSONPair.Create('author','Nick Hodges') );
    book.AddPair( TJSONPair.Create('isbn','978-1941266038') );
    // Add the book to the array
    a.AddElement(book);

  finally
    Memo1.Lines.Text := o.ToString;
    o.Free;
  end;
end;

Теперь запустите приложение и нажмите кнопку. Ваша записка должна быть заполнена фрагментом JSON, как и ожидалось.

{«Книги»: [{«title»: «Zen», «подзаголовок» и искусство обслуживания мотоциклов ». Название ":" Кодирование в Delphi "," подзаголовок ":" "," автор ":" Ник Ходжес "," isbn ":" 978-1941266038 "}]}

О, и все это сгруппировано и уродливое. Если вы хотите взглянуть на него, вы можете

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

его здесь.

Возможно, вы заметили что-то необычное в коде. Когда мы добавляем массив книг к внешнему объекту JSON, мы добавляем его как пару. Почему? Ну из-за массива это тип пары, с именем слева и массивом данных в качестве значения справа. Таким образом, TJSONArray вырывается из TJSONPair. На самом деле даже объект представляет собой пару.

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

Снимите вторую кнопку в вашей форме и добавьте следующий код в это событие OnClick.
Код:
procedure TForm1.Button2Click(Sender: TObject);

var
  o: TJSONObject;
  a: TJSONArray;
  book: TJSONObject;
  idx: integer;
  idy: integer;
begin
  o := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(Memo1.Lines.Text),0) as TJSONObject;
  try
    a := TJSONArray(o.Get('books').JsonValue);
    for idx := 0 to pred(a.size) do begin
      book := TJSONObject(a.Get(idx));
      for idy := 0 to pred(book.Count) do begin
        ShowMessage( book.Pairs[idy].JsonString.ToString + ':' + book.Pairs[idy].JsonValue.ToString );
      end;
    end;
  finally
    o.Free;
  end;
end;

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

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