RealGrid2 가이드
데이터 가져오기
JSON 데이터 가져오기

JSON 데이터 가져오기

RealGrid는 LocalDataProvider.fillJsonData() 함수를 이용해 JSON 포멧의 데이터를 읽어 올 수 있습니다.

JSON 데이터

RealGrid의 DataProvider에 입력할 수 있는 JSON 포멧의 데이터는 배열(Array)형 데이터와 동일한 구조를 갖습니다.

  1. 순수한 값(value)의 목록(list)인 구조, 즉 값의 배열
  2. name: value 쌍으로 이루어진 속성의 집합(collection)인 구조의 배열

위 두 가지 유형의 데이터 포멧은 왼쪽 메뉴 Array 데이터 가져오기에서 LocalDataProvider.setRows()함수를 이용해 GridView에 로드 할 수 있다는 사실을 확인 할 수 있습니다.

JSON 포멧의 데이터는 LocalDataProvider.fillJsonData()함수를 이용해 조금더 유연하게 데이터를 읽어 올 수 있습니다. 함수의 인자는 data와 DataFillOptions객체인 options가 있습니다.

options에 대해서는 아래 DataFillOptions 영역의 데모를 확인하세요.

name: value 집합 구조의 배열

var data = [
  {
    KorName: "박영호",
    Gender: "남",
    Age: "71",
    Phone: "(025)6563-2802",
    ProductId: "198160731-00008",
    KorCountry: "모잠비크",
    OrderDate: "2021-01-16",
    CardNumber: "5587-2139-9692-3644",
    Monetary: "EUR",
    StartDate: "2018-02-25",
    EndDate: "2021-08-12",
    ToMonth: "23",
    Month: "41",
    Year: "3",
    InterestRate: "0.15",
    SaveCost: "51000",
    SaveMaturity: "14950650",
    CurrentSave: "9304950",
    Rating: "5",
    BusinessProficiency: "59",
    Address: "서울특별시 강서구 공항동 45-89"
  },
  {
    KorName: "조일형",
    Gender: "남",
    Age: "62",
    Phone: "(093)8809-8696",
    ProductId: "571215854-00001",
    KorCountry: "캐나다",
    OrderDate: "2019-07-29",
    CardNumber: "5348-5093-3750-0623",
    Monetary: "USD",
    StartDate: "2019-10-21",
    EndDate: "2022-12-11",
    ToMonth: "3",
    Month: "37",
    Year: "3",
    InterestRate: "0.38",
    SaveCost: "14000",
    SaveMaturity: "7801080",
    CurrentSave: "1108520",
    Rating: "3",
    BusinessProficiency: "53",
    Address: "서울특별시 중구 봉래동2가 122"
  }
];
 
dataProvider.fillJsonData(data, { fillMode: "set" });

DataFillOptions

그리드에 데이터를 로드하기 위한 세 함수가 있습니다.

  • fillJsonData(data, options)
  • fillXmlData(data, options)
  • fillCsvData(data, options)

이 함수들에는 공통적으로 DataFillOptions형의 options라는 두번째 인자가 정의되어 있습니다.

DataFillOptions를 이용해 그리드를 데이터에 로드하기 위한 여러가지 옵션을 설정 할 수 있습니다.

fillMode속성으로 데이터를 채우는 방법을 선택 할 수 있습니다.

그리드의 모든 데이터를 지우고 아래 data를 채웁니다.

var data = [
  {
    KorName: "박영호",
    Gender: "남",
    Age: "71",
    Phone: "(025)6563-2802",
    ProductId: "198160731-00008",
    KorCountry: "모잠비크",
    OrderDate: "2021-01-16",
    CardNumber: "5587-2139-9692-3644",
    Monetary: "EUR",
    StartDate: "2018-02-25",
    EndDate: "2021-08-12",
    ToMonth: "23",
    Month: "41",
    Year: "3",
    InterestRate: "0.15",
    SaveCost: "51000",
    SaveMaturity: "14950650",
    CurrentSave: "9304950",
    Rating: "5",
    BusinessProficiency: "59",
    Address: "서울특별시 강서구 공항동 45-89"
  },
  {
    KorName: "조일형",
    Gender: "남",
    Age: "62",
    Phone: "(093)8809-8696",
    ProductId: "571215854-00001",
    KorCountry: "캐나다",
    OrderDate: "2019-07-29",
    CardNumber: "5348-5093-3750-0623",
    Monetary: "USD",
    StartDate: "2019-10-21",
    EndDate: "2022-12-11",
    ToMonth: "3",
    Month: "37",
    Year: "3",
    InterestRate: "0.38",
    SaveCost: "14000",
    SaveMaturity: "7801080",
    CurrentSave: "1108520",
    Rating: "3",
    BusinessProficiency: "53",
    Address: "서울특별시 중구 봉래동2가 122"
  }
];
 
dataProvider.fillJsonData(data, { fillMode: "set" });

그리드의 마지막행 뒤에 jsonData의 처음 한 행을 가져와 추가(Append) 합니다. 이 작업을 위해 DataFillOptions의 start: 0, count: 1 속성을 사용합니다.

var data = [
  {
    KorName: "김덕중",
    Gender: "여",
    Age: "53",
    Phone: "(064)5483-6874",
    ProductId: "149115669-00009",
    KorCountry: "캐나다",
    OrderDate: "2020-03-08",
    CardNumber: "5121-9931-3555-9853",
    Monetary: "HKD",
    StartDate: "2018-12-30",
    EndDate: "2022-01-16",
    ToMonth: "13",
    Month: "36",
    Year: "3",
    InterestRate: "0.32",
    SaveCost: "112000",
    SaveMaturity: "50480640",
    CurrentSave: "20805120",
    Rating: "3",
    BusinessProficiency: "14",
    Address: "서울특별시 양천구 신월동 115-15"
  },
  {
    KorName: "국영석",
    Gender: "남",
    Age: "63",
    Phone: "(044)7055-3032",
    ProductId: "738027655-00005",
    KorCountry: "부베 섬",
    OrderDate: "2020-05-01",
    CardNumber: "5571-3720-2975-7540",
    Monetary: "AUD",
    StartDate: "2019-08-15",
    EndDate: "2021-12-23",
    ToMonth: "5",
    Month: "28",
    Year: "2",
    InterestRate: "0.2",
    SaveCost: "84000",
    SaveMaturity: "15523200",
    CurrentSave: "4704000",
    Rating: "3",
    BusinessProficiency: "14",
    Address: "서울특별시 강남구 역삼동 707-9"
  }
];
 
dataProvider.fillJsonData(data, { fillMode: "append", start: 0, count: 1 });

새로 가져온 데이터들 중 2번째 데이터부터 하나의 데이터를 가져와 첫번째 자리에 끼워 넣습니다. 이 작업을 위해 DataFillOptions의 start: 1, count: 1, fillPos: 0 속성을 사용합니다.

var data = [
  {
    KorName: "김덕중",
    Gender: "여",
    Age: "53",
    Phone: "(064)5483-6874",
    ProductId: "149115669-00009",
    KorCountry: "캐나다",
    OrderDate: "2020-03-08",
    CardNumber: "5121-9931-3555-9853",
    Monetary: "HKD",
    StartDate: "2018-12-30",
    EndDate: "2022-01-16",
    ToMonth: "13",
    Month: "36",
    Year: "3",
    InterestRate: "0.32",
    SaveCost: "112000",
    SaveMaturity: "50480640",
    CurrentSave: "20805120",
    Rating: "3",
    BusinessProficiency: "14",
    Address: "서울특별시 양천구 신월동 115-15"
  },
  {
    KorName: "국영석",
    Gender: "남",
    Age: "63",
    Phone: "(044)7055-3032",
    ProductId: "738027655-00005",
    KorCountry: "부베 섬",
    OrderDate: "2020-05-01",
    CardNumber: "5571-3720-2975-7540",
    Monetary: "AUD",
    StartDate: "2019-08-15",
    EndDate: "2021-12-23",
    ToMonth: "5",
    Month: "28",
    Year: "2",
    InterestRate: "0.2",
    SaveCost: "84000",
    SaveMaturity: "15523200",
    CurrentSave: "4704000",
    Rating: "3",
    BusinessProficiency: "14",
    Address: "서울특별시 강남구 역삼동 707-9"
  }
];
 
dataProvider.fillJsonData(data, {
  fillMode: "insert",
  start: 1,
  count: 1,
  fillPos: 0
});

새로 가져온 데이터들 중 2번째 데이터부터 두개의 데이터를 가져와 현재 그리드의 두번째 데이터부터 덮어쓰기(update) 합니다. 이 작업을 위해 DataFillOptions의 start: 1, count: 2, fillPos: 0 속성을 사용합니다.

var data = [
  {
    KorName: "전우수",
    Gender: "여",
    Age: "73",
    Phone: "(051)2259-4592",
    ProductId: "969966274-00009",
    KorCountry: "페루",
    OrderDate: "2019-12-27",
    CardNumber: "5255-8067-8768-5495",
    Monetary: "THB",
    StartDate: "2018-04-11",
    EndDate: "2022-08-22",
    ToMonth: "22",
    Month: "52",
    Year: "4",
    InterestRate: "0.4",
    SaveCost: "40000",
    SaveMaturity: "45344000",
    CurrentSave: "20384000",
    Rating: "3",
    BusinessProficiency: "100",
    Address: "서울특별시 송파구 가락동 600"
  },
  {
    KorName: "이준원",
    Gender: "남",
    Age: "25",
    Phone: "(086)7381-3123",
    ProductId: "299037986-00005",
    KorCountry: "동티모르",
    OrderDate: "2019-06-14",
    CardNumber: "5182-7600-2022-5395",
    Monetary: "AUD",
    StartDate: "2018-06-02",
    EndDate: "2022-02-13",
    ToMonth: "20",
    Month: "44",
    Year: "3",
    InterestRate: "0.1",
    SaveCost: "152000",
    SaveMaturity: "36115200",
    CurrentSave: "20064000",
    Rating: "3",
    BusinessProficiency: "53",
    Address: "서울특별시 강남구 대치동 937"
  },
  {
    KorName: "안병은",
    Gender: "남",
    Age: "46",
    Phone: "(018)2861-7855",
    ProductId: "048679773-00001",
    KorCountry: "피지",
    OrderDate: "2020-11-01",
    CardNumber: "5172-0915-3934-2048",
    Monetary: "VND",
    StartDate: "2019-05-30",
    EndDate: "2021-06-09",
    ToMonth: "8",
    Month: "24",
    Year: "2",
    InterestRate: "0.39",
    SaveCost: "170000",
    SaveMaturity: "42268800",
    CurrentSave: "16809600",
    Rating: "4",
    BusinessProficiency: "81",
    Address: "서울특별시 은평구 갈현동 240-1"
  }
];
 
dataProvider.fillJsonData(data, {
  fillMode: "update", start: 1, count: 2, fillPos: 1
});