Jump to content
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr ×
과거의 기술자료(읽기 전용): https://tech.devgear.co.kr

이 사이트 검색

검색 태그: 'json'.

  • 태그로 검색

    태그 사이를 쉼표(,)로 구분하세요.
  • 작성자로 검색

콘텐츠 유형


게시판

  • 엠바카데로 (Embarcadero) 개발도구: 델파이 (Delphi), C++빌더 (C++Builder), RAD 스튜디오 (RAD Studio)
    • [기술 Q&A 게시판] 델파이, C++빌더, RAD 스튜디오
    • [설치/등록 Q&A 게시판] 델파이, C++빌더, RAD 스튜디오
    • [기술 기고 게시판] 델파이, C++빌더, RAD 스튜디오
    • [포트폴리오 게시판] 내가 참여한 프로젝트/프로그램 소개
    • [구인 게시판] 개발자 채용/프로젝트 의뢰
  • 엠바카데로 (Embarcadero) DBMS: 인터베이스 (InterBase)
    • [기술 Q&A 게시판] 인터베이스
    • [설치/등록 Q&A 게시판] 인터베이스
    • [기술 기고 게시판] 인터베이스
  • 비주얼 스튜디오 (Visual Studio) 관련 도구
    • [기술 Q&A 게시판] 비주얼 어시스트
    • [설치/등록 Q&A 게시판] 비주얼 어시스트
    • [기술 기고 게시판] 비주얼 어시스트
  • 구록 (Gurock) 테스트도구: 테스트레일 (TestRail)
    • [기술 Q&A 게시판] 테스트레일
    • [설치/등록 Q&A 게시판] 테스트레일
    • [기술 기고 게시판] 테스트레일
  • 아이데라 (Idera) 데이터 도구: 아쿠아 데이터 스튜디오 (Aqua Data Studio), ER/Studio 등
    • ER스튜디오 (ER/Studio)
    • 아쿠아 데이터 스튜디오 (Aqua Data Studio)
  • API레이어 (Apilayer) 개발 도구: API레이어 (Apilayer)
    • [Q&A 게시판] API레이어 (Apilayer)
  • 엠바카데로 (Embarcadero) 라이선스 서버: ELC (Enterprise License Center)
    • [게시판] ELC (Enterprise License Center) 라이선스 서버
  • 이 사이트 이용 관련
    • [게시판] 이 사이트 관련 이용 팁과 Q&A

Categories

  • 이달의 기술자료: 엠바카데로
  • 비디오 세미나
    • UX Summit
    • DelphiCon
    • CodeRage
    • 데브기어 세미나
    • Skill Sprint
  • 기술백서(PDF)

Categories

  • 시작하기
  • 설치/등록/라이선스
  • 튜토리얼
  • 도서

Categories

  • RAD 스튜디오 역사관
  • 11 알렉산드리아
  • 10.4 시드니
  • 10.3 리오
  • 10.2 도쿄
  • 10.1 베를린
  • 10.0 시애틀
  • XE8~XE
  • 2010~6.0

...에서 결과 찾기

검색어 일치 조건


최초 작성일

  • Start

    End


최종 변경일

  • Start

    End


개수로 필터링...

가입

  • Start

    End


Group


자주 쓰는 도구

  1. Docwiki에 있는 "JSON"을 번역한 글: 번역일: 2022년 6월 30일) 위로 가기: Using the RTL in Multi-Device Applications JSON(JavaScript Object Notation)은 언어에 종속적이지 않고 가벼운 데이터-교환 형식이다. JSON은 XML이나 YAML과 같은 다른 데이터-교환 형식의 대안으로 사용될 수 있다. RAD 스튜디오에는 JSON 프레임워크(들)이 있고 각 프레임워크에는 JSON 형식으로 된 데이터를 저장, 해독(Parse), 읽기, 쓰기, 생성을 담당하는 여러가지 클래스와 메소드가 들어있다. 목차 1 JSON 프레임워크(들) 1.1 JSON Object 프레임워크 1.2 Readers and Writers JSON 프레임워크 2 RAD 스튜디오에서 제공하는 JSON 프레임워크들 사이의 다른 점 3 JSON 처리(process)와 해독(parse): 10.3 버전에서 향상됨 4 JSON 주제 5 기타 자료 (See Also) 5.1 코드 예제(Sample) 1 JSON 프레임워크(들) RAD 스튜디오에서 JSON 데이터를 다루는 프레임워크는 몇가지가 있다. JSON Object 프레임워크: 이 프레임워크는 임시 오브젝트(들)을 생성하여 JSON 데이터를 읽고 쓴다. Readers and Writers JSON 프레임워크: 이 프레임워크는 JSON 데이터를 직접 읽고 쓸 수 있다. 1.1 JSON Object 프레임워크 이 JSON Object 프레임워크를 사용하면, 임시 오브젝트를 만들어서 JSON 데이터를 만들거나 해독(Parse)해야 한다. 즉, TJSONObject, TJSONArray, TJSONString와 같은 중간 매개자 역할을 하는 오브젝트를 메모리에 먼저 생성하고 나서 JSON 읽기와 쓰기를 하도록 되어 있다. 이 프레임워크에 대한 보다 자세한 내용은 JSON Objects Framework를 참고 1.2 Readers and Writers JSON 프레임워크 이 Readers and Writers JSON 프레임워크는 JSON 데이터를 스트림(stream)에서 직접 읽고 쓸 수 있으며, 임시 오브젝트를 만들지 않는다. 임시 오브젝트를 만들어서 JSON을 읽고 쓰는 방식이 아니므로, 성능과 메모리 사용면에서 더 좋다. "JSON Object 프레임워크"와 달리 "Readers and Writers JSON 프레임워크"는 BSON을 지원한다. 이 프레임워크에 대한 보다 자세한 내용은 Readers and Writers JSON Framework를 참고 2 RAD 스튜디오에서 제공하는 JSON 프레임워크들 사이의 다른 점 JSON 데이터를 가지고 작업을 할 때 이 두 프레임워크 중 어느 것을 사용해도 된다. 프로젝트의 요구에 더 잘 맞는 것을 선택하게 될 것이다. 아래 표에는 이 두 JSON 프레임워크 사이의 중요한 차이점 몇가지가 정리되어 있다. JSON Object 프레임워크 JSON 구조를 읽기가 더 쉽고, 반복(iteration)과 변경을 해당 모델 트리 안에서 수행할 수 있다. Readers and Writers JSON 프레임워크 스트림 안에 있는 JSON을 순차적으로 읽고 쓴다. 따라서 메모리를 더 적게 사용한다. BSON 지원 확장가능(Extensible) 아래 표는 동일한 JSON "쓰기"를 각 프레임워크에서 어떻게 코딩하는 지를 비교한다. JSON 쓰기 비교표 JSON Object 프레임워크 Readers and Writers JSON 프레임워크 TJSonWriter Readers and Writers JSON 프레임워크 TJSONObjectBuilder JSONColor := TJSONObject.Create; JSONColor.AddPair('name', '빨강'); JSONColor.AddPair('hex', '#f00'); JSONArray := TJSONArray.Create; JSONArray.Add(JSONColor); JSONObject := TJSONObject.Create; JSONObject.AddPair('colors', JSONArray); Writer.WriteStartObject; Writer.WritePropertyName('colors'); Writer.WriteStartArray; Writer.WriteStartObject; Writer.WritePropertyName('name'); Writer.WriteValue('빨강'); Writer.WritePropertyName('hex'); Writer.WriteValue('#f00'); Writer.WriteEndObject; Writer.WriteEndArray; Writer.WriteEndObject; Builder := TJSONObjectBuilder.Create(Writer); Builder .BeginObject .BeginArray('colors') .BeginObject .Add('name', '빨강') .Add('hex', '#f00') .EndObject .EndArray .EndObject; 위 표에 있는 코드 3개가 쓴 결과 JSON은 모두 아래와 같이 동일하다. { "colors":[ { "name":"빨강", "hex":"#f00" } ] } 아래 표는 동일한 JSON "읽기"를 각 프레임워크에서 어떻게 코딩하는 지를 비교한다. JSON 읽기 비교표 JSON Object 프레임워크 Readers and Writers JSON 프레임워크 TJsonReader Readers and Writers JSON 프레임워크 TJSONIterator JSONValue := TJSONObject.ParseJSONValue( '{"colors":[{"name":"빨강", "hex":"#f00"}]}'); Memo1.Lines.Add('READER:'); if JSONValue is TJSONArray then //... else if JSONVAlue is TJSONObject then Memo1.Lines.Add('colors'); Memo1.Lines.Add('name: '+ JSONValue.GetValue<string>('colors[0].name')); Memo1.Lines.Add('hex: '+ JSONValue.GetValue<string>('colors[0].hex')); LStringReader := TStringReader.Create( '{"colors":[{"name":"빨강", "hex":"#f00"}]}'); LJsonTextReader := TJsonTextReader.Create(LStringReader); while LJsonTextReader.read do case LJsonTextReader.TokenType of TJsonToken.PropertyName: Memo1.Lines.Add(LJsonTextReader.Value.AsString); TJsonToken.String: Memo1.Lines[Memo1.Lines.Count-1] := Memo1.Lines[Memo1.Lines.Count-1] + ': ' + LJsonTextReader.Value.AsString; end; LStringReader := TStringReader.Create( '{"colors":[{"name":"빨강", "hex":"#f00"}]}'); LJsonTextReader := TJsonTextReader.Create(LStringReader); LIterator := TJSONIterator.Create(LJsonTextReader); LIterator.Recurse; LIterator.Next; Memo1.Lines.Add(LIterator.Key); LIterator.Recurse; LIterator.Recurse; LIterator.Next; LIterator.Recurse; LIterator.Next; Memo1.Lines.Add(LIterator.Key +': '+ LIterator.AsString); LIterator.Next; Memo1.Lines.Add(LIterator.Key +': '+ LIterator.AsString); 위 표에 있는 코드 3개가 데이터를 읽어서 TMemo에 넣은 결과는 모두 아래와 같이 동일하다. colors name: 빨강 hex: #f00 3 JSON 처리(process)와 해독(parse): 10.3 버전에서 향상됨 JSON 코드의 정확성 향상: 즉, TJSONValue 클래스와 그 자손 클래스가 생성하는 JSON 코드 측면과 해독 측면에서 향상되었다. 성능 또한 향상되었다. TAsciiStreamWriter 클래스가 새로 추가됨: 이 클래스는 TJsonTextWriter와 함께 사용할 수 있으며 JSON 문자열을 생성할 때 성능을 가장 좋게 할 수 있다 (변환을 더 줄일 수 있기 때문). JSON 출력이 "더 보기 좋게 출력"되도록 새로 TJSONAncestor.Format(Indentation: Integer = 4)이 도입되었다. 그 결과 TJSON.Format은 더이상 사용되지 않는다. TJSONAncestor.ToJSON은 항상 형식적으로 유효한 JSON 문자열을 생산한다. TJSONAncestor.ToString도 비슷한 JSON 문자열을 만들긴 하지만 ASCII가 아닌 심볼(symbol)을 \uNNNN로 변환하지 않기 때문에 더 빠르지만 형식적으로 유효하지 않은 JSON을 생산하게 될 수 있다. JSON 해독(parsing) 지원 시 새로운 동작이 추가되어서, 이제는 원본 JSON 텍스트에 오류가 있는 경우에 할 수 있는 선택이 하나 더 생겼다. TJSONObject.TJSONParseOption.RaiseExc: 이것은 ParseJSONValue 메소드가 EJSONParseException 타입 예외(exception)를 발생시킬 것인지 아니면, (예전과 같이) nil을 반환할 것인지를 결정한다. 만약 이 옵션을 켜면 반환값은 해당 에러의 위치가 되고, 이번에 새로 추가된 System.JSON.EJSONParseException(여기에는 Path, Offset, Line, Position 프로퍼티들이 들어있다)을 발생시킨다. 추가로, 이 TJSONObject.ParseJSONValue 메소드에는 세번째 파라미터 즉 RaiseExc가 새로 생겼다. 이 옵션은 JSON 해독 에러 발생 시 예외(exception)을 발생 여부를 지정해놓은 글로벌 설정을 덮어쓴다. 4 JSON 주제 JSON 프레임워크: JSON Objects Framework Readers and Writers JSON Framework BSON 5 기타 자료 (See Also) System.JSON System.JSON.Builders System.JSON.Writers System.JSON.Readers System.JSON.BSON 5.1 코드 예제(Sample) RTL.JSON Iterator 코드 조각 RTL.JSON Reader 코드 조각 RTL.JSON Builder 코드 조각 RTL.JSON Writer 코드 조각 RTL.JSON Workbench 예문
  2. 원격 서버의 Json Data를 FDMemTable로 불러오고 FDMemTable 의 데이터를 SQL 쿼리로 제어 하는 방법의 데모 프로젝트 입니다. 즉, 이 프로젝트를 통해서 원격 서버의 Json Data 를 쿼리문을 이용하여 처리하는 방법을 알 수 있게 됩니다. TFDMemTable은 FireDAC에서 기존 TClientDataSet 보다 진보 된 기능과 성능을 제공 합니다. FireDAC에서 사용하는 Memory Local DB의 개념으로 이해 하면 됩니다. 실제로 FireDAC의 FDConnection의 DriverName을 Local DB 의 한 종류인 SQLite로 지정하여 사용 하게 됩니다. (영상 및 샘플 프로젝트 소스 참조) * 관련 기술 - 원격 서버의 Json data 호출 방법 - TFDMemTable 필드 생성 및 데이터 적재 방법 - TFDMemTable 의 Data를 SQL 로 제어 하는 방법 <프로젝트 실행 화면> <데모영상> [프로젝트 소스 다운로드 링크]
×
×
  • Create New...

중요한 정보

이용약관 개인정보보호정책 이용규칙 이 사이트가 더 잘 작동하기 위해 방문자의 컴퓨터에 쿠키가 배치됩니다. 쿠키 설정 변경에서 원하는 설정을 할 수 있습니다. 변경하지 않으면 쿠키를 허용하는 것으로 이해합니다.