Извлечение значений из файла JSON с помощью SuperObject

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

У меня есть простой файл JSON (с именем test.json), который имеет следующую структуру, и я хочу знать, как я могу загрузить этот файл в delphi и затем извлечь значение для "фамилии" из предоставленной информации.

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

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

{
  id: 212,
  first_name: "bob",
  last_name: "smith",
  age: 25
} 

2 ответа

Решение

Сначала объявите экземпляр объекта как ISuperObject Интерфейс в этом случае. Затем назначьте его, используя TSuperObject.ParseString или даже просто SO проанализировать вашу строку JSON. Затем вы можете прочитать значения, используя однобуквенные свойства, в зависимости от типа значения, которое вы читаете...

var
  O: ISuperObject;
  ID, Age: Integer;
  FirstName, LastName: String;
begin
  O:= SO(MyJsonString);
  ID:= O.I['id'];
  FirstName:= O.S['first_name'];
  LastName:= O.S['last_name'];
  Age:= O.I['age'];
end;

Имейте в виду, однако, что здесь, в Stack Overflow, обычно все не так. Единственная причина, по которой я ответил, в том, что это было быстро и легко, и потому что вы, кажется, здесь новичок. Существует множество ресурсов о том, как использовать SuperObject; в демоверсиях, которые вы скачали с библиотекой, по всему Google и прямо здесь, в Stack Overflow.

Следующий мой пример

function GetLastName(const FileName: string): string;
var
  O: ISuperObject;
begin
  // transport json file to superobject;
  O:= TSuperObject.ParseFile(FileName, False);
  // get value of object memeber 
  result:= O['last_name'].AsString;
end;
Другие вопросы по тегам