В данной статье посмотрим как работать с Json объектами с помощью библиотеки System.Json. Напишем простейшее VCL приложение, которое будет парсить json объект из файла test.json, и наоборот создавать json объект из пары строка-значение. Выглядеть оно будет таким образом.
Итак, пусть у нас на сервере лежит простой json объект в файле
test.json
1 2 3 4 5 |
{ "name":"Stas", "family":"Panteleev", "profession":"programmer" } |
Попробуем сделать простейший парсинг и вытащить отдельно строки и отдельно значения как это показано на рисунке выше.
Парсинг Json объекта
1 2 3 |
uses ...System.JSON |
Собственно в этом юните и находится всё самое интересное! Но это тема отдельного поста.
1 2 3 4 5 6 |
type TMainForm = class(TForm) ... Private FJSONObject: TJSONObject; ... |
Обработка кнопки Parse
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
procedure TMainForm.ParseClick(Sender: TObject); var sl: TStringList; begin sl := TStringList.Create; try sl.LoadFromFile(GetCurrentDir + '\test.json'); memo0.Lines.Assign(S); FJSONObject := TJSONObject.ParseJSONValue(sl.Text) as TJSONObject; FillMemos(); finally sl.Free; end; end; |
Опишем процедуру FillMemos – в случае обнаружения Json Объектов – заполнит Memo
1 2 3 4 5 6 7 8 9 10 |
procedure TMainForm.FillMemos; var i:integer; begin for i := 0 to FJSONObject.Count-1 do begin memoParams.Lines.Add(FJSONObject.Pairs[i].JsonString.Value); memoValues.Lines.Add(FJSONObject.Pairs[i].JsonValue.Value); end; end; |
Создание Json объекта
1 2 3 4 5 6 7 8 9 10 |
procedure TMainForm.AnotherButtonClick(Sender: TObject); var jsonPair:TJsonPair; myJSONObject:TJsonObject; begin myJSONObject:=TJSONObject.Create; jsonPair:=TJsonPair.Create('SomeString','SomeValue'); myJSONObject.AddPair(JsonPair); memo3.Lines.Add(MyJSONObject.ToJSON()); end; |
Итак, мы создали объект из одной пары строка-значение и вывели его в memo3. В дальнейшем этот объект можно либо сохранить в файле filename.json либо сделать-то то ещё полезное и нужное для задачи.
Мы рассмотрели на самом простейшем уровне чтение и запись json объектов. Так называемы парсинг и создание json объектов.