获取json的节点名称

好几次想取json的节点名称,今天搞定了。

 

procedure GetJsonNames(o: ISuperObject; Strs: TStrings);
var
  ite: TSuperAvlIterator;
  obj: TSuperAvlEntry;
begin
  ite := TSuperAvlIterator.Create(o.AsObject);
  try
    ite.First;
    obj := ite.GetIter;

    while obj <> nil do
    begin
      strs.Add(obj.Name);

      ite.Next;
      obj := ite.GetIter;
    end;
  finally
    ite.Free;
  end;
end;

procedure TForm5.Button12Click(Sender: TObject);
var
  o: ISuperObject;
  Strs: TStrings;

begin
  Strs := TStringList.Create;
  o := so('{"item1":1,"item2":2,"item3":3}');
  GetJsonNames(o, Strs);
  ShowMessage(Strs.Text);
  FreeAndNil(Strs);
end;

 

posted @ 2015-09-06 13:51  zengjc123  阅读(975)  评论(2编辑  收藏  举报