본문 바로가기

운동하는 개발자/Delphi

델파이 JSON String 파싱 / delphi json parsing

728x90

상당히 간단한 기능이고 자료도 제법 있는데 내 델파이 버전 탓인지 사람들이 알려주는 함수가 파라미터가 다르거나 아예 없거나.. 겨우겨우 했다
이 글은 델파이 2010 버전으로 작성되었습니다

 

uses
	DBXJSON; //필수 추가
    
procedure jsonparsing(jsondata : string);
var
  JSonObject:TJSonObject;
  JSonPair  : TJSONPair;
  JsonString: string;  
  JsonKey, JsonValue : string;
begin
  jsondata := '{"Name":"kim","age":"34"}'; //http통신으로 이와 같은 데이터를 수신했다고 가정하고
  jsondata := StringReplace(jsondata, #10 , '', [rfReplaceAll, rfIgnoreCase]); //행넘김 제거
  
  //바이트 형식으로 데이터를 넘겨서 json object 생성(디버깅으로 object가 nil이 아닌것 확인)
  JSonObject := TJSONObject.ParseJSONValue(TEncoding.ASCII.GetBytes(jsondata),0) as TJSONObject;
  JSonPair := JSonObject.Get(0); //0번은 name , 1번은 age	
  JsonKey := JSonPair.JsonString.Value;  //name
  JsonValue := JSonPair.JsonValue.Value;  //kim

  //JSonObject length로 for문을 돌며 key를 탐색 가능..
 

end;

// 2중 3중인 json은 jsonArray라는걸 써야 하는데 다른 분 블로그 참고..


 

728x90