procedure TForm32.Button2Click(Sender: TObject);
const
hochul = '{"아이피":"192.168.21.100","date":"2014-03-16","time":"22:23:01"}';
var
JSON: TJSONObject;
I: Integer;
rec_data: string;
begin
rec_data := trim(hochul);
JSON := TJSONObject.ParseJSONValue(rec_data) as TJSONObject;
try
Memo1.Lines.Add(JSON.ToString);
for I := 0 to JSON.Size - 1 do
Memo1.Lines.Add(JSON.Get(I).JsonString.Value + ' : ' + JSON.Get(I).JsonValue.Value);
finally
JSON.Free;
end;
end;
외부에서 json string을 받아 오신다면 TStringStream, TBytesStream을 활용하시면 됩니다.
const
hochul = '{"아이피":"192.168.21.100","date":"2014-03-16","time":"22:23:01"}';
var
JSON: TJSONObject;
I: Integer;
rec_data: TStringStream;
begin
rec_data := TStringStream.Create(hochul, TEncoding.UTF8);
JSON := TJSONObject.ParseJSONValue(rec_data.DataString) as TJSONObject;
try
Memo1.Lines.Add(JSON.ToString);
for I := 0 to JSON.Size - 1 do
Memo1.Lines.Add(JSON.Get(I).JsonString.Value + ' : ' + JSON.Get(I).JsonValue.Value);
finally
JSON.Free;
FreeAndNil(rec_data);
end;
나빌레나 님이 쓰신 글 :
: 다음은 작성한 문장입니다
: uses dbxjson;
:
: procedure TForm1.Button2Click(Sender: TObject);
: const hochul =
: '{"아이피":"192.168.21.100","date":"2014-03-16","time":"22:23:01"}';
: var
:
: JSON: TJSONObject;
: StringBytes: TBytes;
: I: Integer;
: rec_data : string;
: begin
:
: rec_data := trim(hochul);
: StringBytes := ( TEncoding.utf8.GetBytes(rec_data);
: JSON := TJSONObject.Create;
: json := tjsonobject.ParseJSONValue(stringbytes,0) as tjsonobject;
:
: try
: Memo1.Lines.Add(JSON.ToString);
: for I := 0 to JSON.Size - 1 do
: Memo1.Lines.Add(JSON.Get(i).JsonString.Value + ' : ' + JSON.Get(i).JsonValue.Value);
: finally
: JSON.Free;
: end;
: end;
:
: 결과는 이렇게 출력됩니다
:
: {"¾ÆAICC":"192.168.21.100","date":"2014-03-16","time":"22:23:01"}
: ¾ÆAICC : 192.168.21.100
: date : 2014-03-16
: time : 22:23:01
:
:
: 한글 "아이피"라른 부분만 깨집니다
: 환경은 del2010 입니다 dbxjson 부분을 수정해야 하는건지 저가 좀 json은 생소해서
: 고수님들의 한수 의견 부탁합니다.
: