# loadSearchData (method)

> json형식의 데이터를 시트에 로드합니다.
> `append` 인자를 설정하지 않으면 기존에 시트의 데이터는 클리어 된 후, 로드 됩니다.
> 비동기형식으로 동작하므로, 데이터 로드 이후에 대한 처리는 onDataLoad 이벤트에서 로직을 구성하셔야 합니다.

### Syntax

    void loadSearchData( data, append, callback, sync, next, strictParse );

### Parameters

Name | Type | Required | Description
--- | --- | --- | ---
data | `object` | 필수 | json형식의 데이터
append | `boolean` | 선택 | 기존 데이터 하단에 `append` 여부(`default:0(false)`) 조회 방식의 차이로 인해 `append:1(true)`사용 시 SearchMode:2인 경우 onRenderFinish이벤트가 발생하지 않습니다.
callback | `function` | 선택 | 조회 후 호출할 콜백 함수
sync | `boolean` | 선택 | 동기 조회 여부(`default:0(false)`) 기본적으로 비동기로 동작
next | `object` | 선택 | 데이터 로우 객체 지정한 행 위에부터 데이터 `append`. (`append:1(true)`일때만 사용 가능)
strictParse | `boolean` | 선택 | json 파서 선택 일반적으로 유연한 파싱으로 구동되고 true 설정시에 브라우져의 JSON.parse()를 통해 파싱 `default:false`
parent | `object` | 선택 | 데이터 로우 객체 (동적 트리 조회 사용시 부모에 해당하는 행 지정)

유연한 파싱이란 일반적인 JSON.parse()를 통해 파싱하는 경우 허용하지 않는 몇가지를 허용합니다.

1. 여분의 콤마 허용
2. 프로퍼티 이름의 쌍따옴표가 없어도 됨.

참고

- MDN:bad parsing
- JSON.parse()가 유연한 파싱보다 성능이 우수(약 5배)하지만 데이터 로딩과정에서 파싱이 차지하는 시간이 크지 않아 5만건 이내에서는 사용자가 느끼기 어려운 수준임.

### Return Value

none

### Example

    var DATA = {"data":[
        {"EMP_ID":"08212","EMP_NM":"홍길동","DEPT_CD":"031"},
        {"EMP_ID":"07417","EMP_NM":"허균","DEPT_CD":"120"},
        {"EMP_ID":"02600","EMP_NM":"홍판서","DEPT_CD":"405"},
    ]};

    //기존 데이터 밑에  데이터를 append한다..
    sheet.loadSearchData( DATA, 1 );

    //지정한 행 위에부터 데이터가 append 된다..
    sheet.loadSearchData({ data: DATA.data, append: true, next: sheet.getRowByIndex(3) })

### Read More

- StrictParse cfg
- dataStructure appendix
- doSearch method
- doSearchPaging method
- onReceiveData event
- onDataLoad event

### Since

product | version | desc
--- | --- | ---
core | 8.0.0.0 | 기능 추가
core | 8.0.0.6 | `sync` 인자 추가
core | 8.0.0.7 | `next` 인자 추가
core | 8.0.0.7 | `strictParse` 인자 추가
core | 8.0.0.25 | `parent` 인자 추가