자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다. 
- 제품설치/등록 오류 문의: 설치/등록 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