Java, Php 및 기타 언어에는 Json 데이터를 구문 분석하기 위한 성숙한 프레임워크가 있으므로 형식이 지정된 json 데이터를 프로그램에서 인식할 수 있는 개체나 속성으로 변환하는 데 코드를 거의 사용할 수 없습니다. Delphi에서 이 기능(예: IsuperObject)을 구현합니다. 아직 이 구성 요소가 없다면 온라인에서 검색하여 다운로드하거나 아래 메시지 상자에 이메일을 남겨서 저에게 요청하세요.
먼저 ISuperObject에서 일반적으로 사용되는 몇 가지 함수에 대해 이야기해 보겠습니다.
function SO(const s: SOString = '{}'): ISuperObject;overload; 이 함수는 json 데이터 문자열을 전달하고 ISuperObject 개체를 반환합니다. 이는 일반적으로 jObj와 같이 json을 구문 분석할 때 사용하는 첫 번째 함수입니다. (jsonstr).
property O[const path: SOString]: ISuperObject read GetO write PutO; 예: jobj.O['username'], 이 함수는 ISuperObject 개체에 의해 호출되며 대괄호 안의 문자열은 json의 필드 이름입니다. ISuperObject 개체를 반환했습니다.
property S[const path: SOString]: SOString read GetS write PutS; 이 함수는 ISuperObject 개체에 의해 호출되며 O['username']과 달리 SoString, 즉 문자열을 반환합니다. jObj.S['사용자 이름']; 마찬가지로, I['age']는 정수를 반환하고, B['isenable']은 부울 유형을 반환하고, A['users']는 TSuperArray 배열을 반환하는 등 여러 유사한 함수가 있습니다.
AsString, AsBoolean, AsInteger, AsArray, ISuperObject 함수는 ISuperObject를 해당 데이터 유형으로 변환하는 데 사용됩니다.
아래 데모 코드를 살펴보면 json 데이터는 다음과 같습니다.
{ "retcode": "1", "datafrom": "서버", "users": "[{/"id/":1, /"username/": /"liuderu/", /"website/": /"bcoder.com/"},{/"id/":2, /"사용자 이름/": /"Jeoe/", /"website/": /"baidu.com/"}]"}Delphi 버전 2010의 코드는 다음과 같습니다.
단위 uFmMain;인터페이스는 Windows, 메시지, SysUtils, 변형, 클래스, 그래픽, 컨트롤, 양식, 대화 상자, StdCtrls, ComCtrls, 버튼, superobject를 사용합니다. TFmMain = class(TForm) Memo1: TMemo; TListView; : TLabel 절차; BitBtn1Click(Sender: TObject); private { Private 선언 } public { Public 선언 } end;var FmMain: TFmMain;implementation{$R *.dfm}procedure TFmMain.BitBtn1Click(Sender: TObject);var jRet, jUsers: ISuperObject; : TSuperArray; retCode: 정수; strUsers: 문자열; i: 정수;begin jRet := SO(Memo1.Text); if (jRet.O['retcode'] <> nil) then start retCode := jRet.O['retcode'].AsInteger; .Caption := '반환 값:' + IntToStr(retCode) + '데이터 소스:' + jRet.O['datafrom'].AsString; if(jRet.O['retcode'].AsInteger = 1) strUsers := jRet.O['users'].AsString := SO(strUsers); aryUsers := jUsers.AsArray; for I := 0에서 aryUsers.Length - 1로 시작 ListView1.Items.Add 시작 Caption := aryUsers[i].O['id'].AsString; SubItems.Add(aryUsers[i].O['username'].AsString); ].O['웹사이트'].AsString); end;end;ISuperObject를 사용하여 json을 구문 분석하는 Delphi의 간단한 예: Delphi_Json_jb51.rar