마음의 안정을 찾기 위하여 - 델파이에서 JSON 사용하기 [lkJSON] Vs [uJSon]
1790075
514
479
관리자새글쓰기
태그위치로그방명록
별일없다의 생각
dawnsea's me2day/2010
색상(RGB)코드 추출기(Color...
Connection Generator/2010
최승호PD, '4대강 거짓말 검...
Green Monkey**/2010
Syng의 생각
syng's me2DAY/2010
천재 작곡가 윤일상이 기획,...
엘븐킹's Digital Factory/2010
델파이에서 JSON 사용하기 [lkJSON] Vs [uJSon]
Delphi/컴퍼넌트, 솔루션 소개 | 2007/08/01 10:05

델파이에서 JSON 포맷을 활용할 수 있는 라이브러리로 lkJSON 라이브러리와
uJSon 라이브러리가 있습니다. 이번엔 두 라이브러리에 대해 소개를 해드릴까 합니다.

두개의 라이브러리 모두 SourceForge에서 구할 수 있으며, 오픈소스 형태로 소스까지 공개되어 있으므로, 누구나 자유로이 다운로드 받아 자신의 입맛에 맞게 수정이 가능합니다.

각 두개의 라이브러리에 대해 알아보고, 자신의 입맛에 맞는 라이브러리를 사용하도록 합시다.

■ lkJSON

현재 버젼은 1.01 (2007년 5월 17일)입니다. 영문등의 처리에는 강한듯 싶으나 한글/유니코드의 처리에 약간 부족한 점이 있어보입니다.
게다가 내부적으로 ["] 등의 문자는 [']로 변형을 해버리기 때문에 원본의 변형이라는 달갑지 않은면도 있구요.

- 다운로드 경로
  : http://sourceforge.net/projects/lkjson/

- 메뉴얼
  : 없습니다. -_-; 안습
    간단한 샘플이 몇개 존재하므로 샘플을 보면 사용방법을 익히기는 그다지 어렵지 않습니다.

- 업데이트
  : 마지막 버젼이 2007년 5월 17일이고 그 이전 업데이트 주기가 일주일 단위였던 것을 보면 앞으로도 지속적인 업데이트가 되지 않을까? 하는 기대감이 있습니다.




■ uJSon

lkJSon을 먼저 알게 된 이후, 한글처리에 대해 고심하다가 알게된 라이브러리입니다.
현재 버전은 1.0.5이며, lkJSon에서 사용하면서 느꼈던 불편함을 한번에 해소시켜준 라이브러리입니다.

- 다운로드 경로
  : http://sourceforge.net/projects/is-webstart/

- 메뉴얼
  : Html 포맷으로 메뉴얼을 제공합니다만, 프로퍼티 자체가 워낙에 직설적(?)이기 때문에 메뉴얼이 없어도 곧바로 실무에 적용이 가능합니다.
    굳이 읽어보신다면 말리지 않습니다.

- 업데이트
  : 2006년 7월 26일 업데이트 이후 새 버전이 올라오고 있지 않습니다.
    새로운 버전이 올라오지 않는 이유는 얼마간 사용해본 결과 그다지 올라올 필요성이 없다 싶어서일 정도로 훌륭합니다.


실제 두개의 라이브러리의 사용방법을 확인해 볼까요? 거의 비슷하게 동작합니다.

lkJSon에서 제공하는 sample1.dpr과 그것을 동일하게 ujson으로 구성한 예제를 보도록 하겠습니다.

- lkJSON의 sample1.dpr -

var
  js:TlkJSONobject;
  ws: TlkJSONstring;
  s: String;
  i: Integer;
begin
  js := TlkJSONobject.Create;
  js.Add('namestring','namevalue');
  s := TlkJSON.GenerateText(js);
  writeln(s);
  js.Free;

  js := TlkJSON.ParseText(s) as TlkJSONobject;
  ws := js.Field['namestring'] as TlkJSONstring;
  s := ws.Value;
  writeln(s);

  s := js.getString('namestring');
  writeln(s);

  readln;
  js.Free;
end.

- lkJSON의 sample1.dpr을 uJson으로 재 구성한 예 -

var
  obj_Json : TJSONObject;
begin
   obj_json := tjsonobject.create;
   obj_json.put('namestring', 'namevalue');
   s := obj_json.toString;
   writeln(s);
   obj_json.free;

   obj_json := tjsonobject.create(s);
   s := obj_json.getString('namestring');
   writeln(s);

   readln;
   obj_json.free;
end.

lkJSon에서 화려한(?) 형변환을 남발할때, uJson에서는 tjsonobject 하나만으로 처리가 전부 가능하군요. 훌륭하지 않습니까? 코드가 단순하다고 아래처럼 허접이라고 얘기하시면 대략 난감 -,.-;

사용자 삽입 이미지


어디까지나 주관적인 관점에서 작성된 코드이기 때문에, 두 라이브러리의 장단점을 다 보여주고 있지는 않습니다만, uJSon 라이브러리 쪽으로 제 맘이 기우는건 어쩔수가 없네요. 판단은 이 글을 읽는 분들이 판단하실 몫이지만...


2007/08/01 10:05 2007/08/01 10:05
Article tag list Go to top
View Comment 1
Trackback URL :: 이 글에는 트랙백을 보낼 수 없습니다
From. zenyr 2011/06/23 20:42
답글달기삭제
검색하다 좋은 라이브러리를 알게 됐네요. 실사용하려고 보니 메모리 누수가 있어 조금 더 알아본 결과 TJSONObject.create(x: JSONTokener) 함수에서 x.nextValue().toString(); 코드에서 누수가 일어나고 있었습니다. with문이나 변수선언을 통해 .free 시켜주시면 메모리 누수가 해결됩니다.
PREV : [1] : NEXT
 
 
 
 
: [1] ... [700][701][702][703][704][705][706][707][708] ... [849] :
«   2020/10   »
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
전체 (849)
출판 준비 (0)
My-Pro... (41)
사는 ... (492)
블로그... (22)
My Lib... (32)
게임 ... (23)
개발관... (3)
Smart ... (1)
Delphi (76)
C Builder (0)
Object... (0)
VC, MF... (9)
Window... (1)
Open API (3)
Visual... (0)
Java, JSP (2)
ASP.NET (0)
PHP (4)
Database (12)
리눅스 (28)
Windows (21)
Device... (1)
Embedded (1)
게임 ... (0)
Web Se... (2)
Web, S... (19)
잡다한... (5)
프로젝트 (0)
Personal (0)
대통령... (9)
Link (2)