JSON 데이터 가져오기
RealGrid는 LocalDataProvider.fillJsonData() 함수를 이용해 JSON 포멧의 데이터를 읽어 올 수 있습니다.
JSON 데이터
RealGrid의 DataProvider에 입력할 수 있는 JSON 포멧의 데이터는 배열(Array)형 데이터와 동일한 구조를 갖습니다.
- 순수한 값(value)의 목록(list)인 구조, 즉 값의 배열
- 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
});