자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi XE8 REST JSON 데이터 서비스 문제문의
2015.07.11 01:34
XE8버전으로 아래와 같이 REST서버에 메소드를 만들어서 JSON 객체와 JSONArray를 리턴하였습니다.
그런데 JSONObject 의 경우는 문제가 없는데 JSONArray의 경우 JSON포멧이 이상하여 파싱이 되지 않습니다.
소스코드상에서 변경할 방법을 몰라서 문의 드립니다.
아래 JSONObject 타입은 JSON데이터에 문제가 없슴.
아래 JSONArray타입은 "result":[...] 가 되어야 되는데 "result":[[ ...]] 가 되어 json 파싱이 되지 않음. ㅠㅠ
---------------- 관련 소스 ------------------------------------------------------
function TServerMethods1.GetName:TJSONObject;
var
jRecord,jRecord2: TJSONObject;
begin
jRecord := TJSONObject.Create;
result := jRecord;
result.AddPair('LastName','Hong');
result.AddPair('FirstName','GilDong');
result.AddPair('Age','30');
end;
function TServerMethods1.MyData: TJSONArray;
var
jRecord,jRecord2: TJSONObject;
I: Integer;
begin
ClientDataSet1.Open;
Result := TJSonArray.Create;
while not ClientDataSet1.EOF do
begin
jRecord := TJSONObject.Create;
for I := 0 to ClientDataSet1.FieldCount - 1 do
jRecord.AddPair( ClientDataSet1.Fields[I].FieldName,TJSONString.Create (ClientDataSet1.Fields[I].AsString));
Result.AddElement(jRecord);
ClientDataSet1.Next;
end;
end;
Delphi XE8 REST JSON 데이터 서비스 문제문의
2015.07.11 01:34
XE8버전으로 아래와 같이 REST서버에 메소드를 만들어서 JSON 객체와 JSONArray를 리턴하였습니다.
그런데 JSONObject 의 경우는 문제가 없는데 JSONArray의 경우 JSON포멧이 이상하여 파싱이 되지 않습니다.
소스코드상에서 변경할 방법을 몰라서 문의 드립니다.
아래 JSONObject 타입은 JSON데이터에 문제가 없슴.
아래 JSONArray타입은 "result":[...] 가 되어야 되는데 "result":[[ ...]] 가 되어 json 파싱이 되지 않음. ㅠㅠ
---------------- 관련 소스 ------------------------------------------------------
function TServerMethods1.GetName:TJSONObject;
var
jRecord,jRecord2: TJSONObject;
begin
jRecord := TJSONObject.Create;
result := jRecord;
result.AddPair('LastName','Hong');
result.AddPair('FirstName','GilDong');
result.AddPair('Age','30');
end;
function TServerMethods1.MyData: TJSONArray;
var
jRecord,jRecord2: TJSONObject;
I: Integer;
begin
ClientDataSet1.Open;
Result := TJSonArray.Create;
while not ClientDataSet1.EOF do
begin
jRecord := TJSONObject.Create;
for I := 0 to ClientDataSet1.FieldCount - 1 do
jRecord.AddPair( ClientDataSet1.Fields[I].FieldName,TJSONString.Create (ClientDataSet1.Fields[I].AsString));
Result.AddElement(jRecord);
ClientDataSet1.Next;
end;
end;
다음 글을 참고하시기 바랍니다.
http://tech.devgear.co.kr/delphi_news/413206