자유롭게 질의 및 응답을 할 수 있는 게시판입니다. 개발자 여러분의 답변이 큰 도움이 됩니다.
- 제품설치/등록 오류 문의: 설치/등록 Q&A 이용 (제품 구매 고객 한정)
Delphi stringstream 에 배열 넣기
2018.10.23 17:14
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
POST 방식으로 JSON 형식의 데이터를 XML 로 쏴주는 프로그램을 작성중에 질문올립니다.
JSON을 stringstream 방식으로 작성 해서 post로 url에 넘겨주는데
ex ) stringstream.create('{' + '"a1":"aa",'
+ '"b1":"bb",' , TEncodeing.UTF8);
이렇게 짜던중에 value 값으로 배열을 포함하고 싶은데
ex ) stringstream.create('{' + '"a1":"aa",'
+ '"b1":''+ array +',' , TEncodeing.UTF8);
이런 식으로 하니까 string 과 array 의 타입이 맞지 않아 들어가지를 않군요
stringstream에 배열을 넣는 방법이 혹시 있을까요?
댓글 2
-
험프리
2018.10.24 09:10
-
지병철
2018.10.24 10:27
하고 싶으신 것이 b1: 에 배열에 있는 string 을 하나의 string으로 출력하고 싶은건지, 배열을 이용해 b1:, b2:, b3: 이런식으로 만드려는 건지, b1: 밑에 JSON 하부 구조를 만들려고 하는 건지 확실치 않습니다만, 순수하게 소스코드만 보면 b1: 에 배열의 값을 string으로 붙여서 출력하려는 것 같아 이것에 대한 제 생각을 알려드립니다.
배열이 자동으로 string으로 변환되지 않으니, 배열을 string으로 만드려면 별도의 코드가 필요할 것 같습니다.
위의 코드대로 하시려면,
1. array 를 string으로 만드는 함수를 하나 만드셔셔 사용하던지
ex ) stringstream.create('{' + '"a1":"aa",'
+ '"b1":"'+ ConvertArrayToStr(array) +'",' , TEncodeing.UTF8);
어떠한 타입의 array로 선언되었는지 몰라서, ConvertArrayToStr() 함수를 말로 설명드리면,
array 갯수만큼 loop를 돌려서 하나의 string을 만들어서 결과값을 return하도록 만들면 될 것 같습니다.
2. TStringList를 이용하는 것이 있을 것 같습니다.
procedure TForm31.Button1Click(Sender: TObject);
var
StrStream: TStringStream;
StrList: TStringList;
begin
StrList := TStringList.Create;
StrList.Delimiter := ';';
StrList.Add('a');
StrList.Add('b');
StrList.Add('c');
StrStream := TStringStream.Create('{' + '"a1":"aa",' +
'"b1":"'+ StrList.DelimitedText +'",' , TEncoding.UTF8);
end;
도움이 되시길...
Delphi stringstream 에 배열 넣기
2018.10.23 17:14
본 게시판은 개발자들이 자유롭게 질문과 답변을 공유하는 게시판입니다.
* 따라서 최대한 정중하게 질문을 올려 주세요.
* 질문을 상세히 작성해 주실 수록 좋은 답변이 올라 옵니다.
* 다른 분들도 참고할 수 있도록 결과 댓글 필수(또는 감사 댓글)
(결과 댓글을 달지 않는 경우 다음 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)
-----------------------------------------------------------------------------------------------
POST 방식으로 JSON 형식의 데이터를 XML 로 쏴주는 프로그램을 작성중에 질문올립니다.
JSON을 stringstream 방식으로 작성 해서 post로 url에 넘겨주는데
ex ) stringstream.create('{' + '"a1":"aa",'
+ '"b1":"bb",' , TEncodeing.UTF8);
이렇게 짜던중에 value 값으로 배열을 포함하고 싶은데
ex ) stringstream.create('{' + '"a1":"aa",'
+ '"b1":''+ array +',' , TEncodeing.UTF8);
이런 식으로 하니까 string 과 array 의 타입이 맞지 않아 들어가지를 않군요
stringstream에 배열을 넣는 방법이 혹시 있을까요?
댓글 2
-
험프리
2018.10.24 09:10
-
지병철
2018.10.24 10:27
하고 싶으신 것이 b1: 에 배열에 있는 string 을 하나의 string으로 출력하고 싶은건지, 배열을 이용해 b1:, b2:, b3: 이런식으로 만드려는 건지, b1: 밑에 JSON 하부 구조를 만들려고 하는 건지 확실치 않습니다만, 순수하게 소스코드만 보면 b1: 에 배열의 값을 string으로 붙여서 출력하려는 것 같아 이것에 대한 제 생각을 알려드립니다.
배열이 자동으로 string으로 변환되지 않으니, 배열을 string으로 만드려면 별도의 코드가 필요할 것 같습니다.
위의 코드대로 하시려면,
1. array 를 string으로 만드는 함수를 하나 만드셔셔 사용하던지
ex ) stringstream.create('{' + '"a1":"aa",'
+ '"b1":"'+ ConvertArrayToStr(array) +'",' , TEncodeing.UTF8);
어떠한 타입의 array로 선언되었는지 몰라서, ConvertArrayToStr() 함수를 말로 설명드리면,
array 갯수만큼 loop를 돌려서 하나의 string을 만들어서 결과값을 return하도록 만들면 될 것 같습니다.
2. TStringList를 이용하는 것이 있을 것 같습니다.
procedure TForm31.Button1Click(Sender: TObject);
var
StrStream: TStringStream;
StrList: TStringList;
begin
StrList := TStringList.Create;
StrList.Delimiter := ';';
StrList.Add('a');
StrList.Add('b');
StrList.Add('c');
StrStream := TStringStream.Create('{' + '"a1":"aa",' +
'"b1":"'+ StrList.DelimitedText +'",' , TEncoding.UTF8);
end;
도움이 되시길...
우선 JSON 포맷 작성을 학습해 보시기 바랍니다.
http://docwiki.embarcadero.com/RADStudio/Tokyo/en/JSON
——————
답글이 도움이 되셨는지 다른 분들도 참고할 수 있도록 결과 댓글 부탁드립니다.
(결과 댓글이 없는 경우 다른 질문에 대한 답변이 달리지 않는 불이익이 있을 수 있습니다.)