使用SuperObject从JSON文件中提取值

时间:2014-07-03 23:36:04

标签: json delphi parsing superobject

正如标题所示,我试图使用Delphi 7和SuperObject Library从一个非常简单的结构化JSON文件中提取一个值,但我还没有找到任何涵盖这个最基本主题的例子,并希望有些大师这里或许可以给我一些帮助。

我所拥有的是一个简单的JSON文件(名为test.json),它具有以下结构,我想知道的是如何在delphi中加载此文件,然后从中提取“姓氏”的值提供的信息。

我确信这是一项非常简单的任务,但正如我之前所述,我无法找到任何关于如何做到这一点的例子,并希望得到一些帮助。

示例JSON文件

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

2 个答案:

答案 0 :(得分: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中的演示文稿。

答案 1 :(得分:0)

接下来是我的例子

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;