ReadFromFile(FileName: String);
FileName. Путь и наименование JSON-файла.
Метод ReadFromFile загружает JSON-структуру из указанного файла.
Для выполнения примера предполагается наличие JSON-файла «d:\Work\Json\testfile.json».
Sub UserProc;
Var
Doc: IJsonDocument;
JSON: IJsonObject;
Begin
Doc := New JsonDocument.Create;
Doc.ReadFromFile("d:\Work\Json\testfile.json");
JSON := Doc.Root;
ShowElements(JSON);
End Sub UserProc;
Sub ShowElements(JSON: IJsonObject);
Var
i, c: Integer;
Element: IJsonElement;
Begin
c := JSON.Count;
For i := 0 To c - 1 Do
Element := JSON.ItemByIndex(i);
Debug.WriteLine("Name: " + JSON.Property_(i));
Debug.Write("Type: " + Element.GetType.ToString + ". Value: ");
ShowElement(Element);
End For;
End Sub ShowElements;
Sub ShowElement(Element: IJsonElement);
Begin
Select Case Element.GetType
Case JsonElementType.Boolean: Debug.WriteLine(Element.AsBoolean);
Case JsonElementType.Double: Debug.WriteLine(Element.AsDouble);
Case JsonElementType.Integer: Debug.WriteLine(Element.AsInteger);
Case JsonElementType.NullValue: Debug.WriteLine("null value");
Case JsonElementType.String: Debug.WriteLine(Element.AsString);
Case JsonElementType.Array: ShowArray(Element.AsArray);
Case JsonElementType.Object: ShowObject(Element.AsObject);
End Select;
End Sub ShowElement;
Sub ShowArray(JSONArray: IJsonArray);
Var
Element: IJsonElement;
i, c: Integer;
Begin
Debug.Indent;
c := JSONArray.Count;
Debug.WriteLine("Количество отобранных элементов: " + c.ToString);
For i := 0 To c - 1 Do
Element := JSONArray.Item(i);
ShowElement(Element);
End For;
Debug.Unindent;
End Sub ShowArray;
Sub ShowObject(Obj: IJsonObject);
Var
Element: IJsonElement;
i, c: Integer;
Begin
Debug.Indent;
c := Obj.Count;
For i := 0 To c - 1 Do
Element := Obj.ItemByIndex(i);
ShowElement(Element);
End For;
Debug.Unindent;
End Sub ShowObject;
При выполнении примера из файла будет считана JSON-структура. Информация об отдельных элементах структуры будет выведена в консоль среды разработки.
См. также: