[펌] Excel 데이터를 Json으로 변환하기
엑셀이 제공하는 편리한 기능 때문에 게임에 사용되는 데이터를 관리하기 위해서 엑셀을 많이 사용합니다.
하지만, 보안 문제나 이기종간 데이터 연동 문제 등이 있어서 엑셀 파일을 그대로 사용하는 경우 보다는 원하는 포맷으로 데이터를 변환해서 사용하는 경우가 더 많습니다.
게임 개발에서 사용하는 포맷은 csv, xml, binary 형태 등 여러가지고 있고, 저는 그 중에서 Json을 사용해 볼까하고 검색.
제일 먼저 검색된 툴은 node.js 로 제작된 xls-to-json
https://www.npmjs.com/package/xls-to-json
설치법과 사용법이 매우 간단해서 node가 설치되어 있다면, 아래 명령어로 간단하게 설치할 수 있습니다.
npm install xls-to-json
나머지는 사이트의 Usage 항목에 있는대로 하면 되는데,
막상 실행을 해서 변환된 json 파일을 보니 자료형에 대한 지원이 전혀 없이 모두 string 타입으로 변환.
Date 타입은 고사하고, int나 float로 지정된 값들도 모두 따옴표(“)가 양 옆에 붙어 버려서 LitJson과 같은 Json 변환 라이브러리에서 ToObject()를 실행할 수 없는 상태가 됩니다.
실제로 신나게 테스트를 했는데, 변환할 수 없다는 에러가 나와서 한동안 멍하니 있었습니다.
다시 검색을 해 보니, 국내 개발자인 최효진님께서 개발한 라이브러리가 있었습니다.
https://github.com/coolengineer/excel2json
이 툴이 좋은 점은 아래 스샷처럼, 데이터를 관리할 수 있고 결과물도 깔끔하게 나온다는 것.
결과물은 아래처럼 나옵니다. 숫자에는 확실히 따옴표가 없어졌습니다.
Objects in Object, Object array 등을 지원해서 이걸 쓰기로 결정. LitJson에서도 잘 불러와 집니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | { "init": { "coins": 1000, "exp": 0, "golds": 0, "character": "wizard" }, "buildings": { "barrack": { "color": "blue", "width": 200, "height": 200 }, "mine": { "color": "yellow", "width": 200, "height": 100 }, "gas": { "color": "red", "width": 100, "height": 100 }, "townhall": { "color": "black", "width": 200, "height": 200 } }, |
[출처]
'Programming > JSON' 카테고리의 다른 글
[펌] Unity에서 Json 사용 시 고려할 라이브러리. (0) | 2016.08.08 |
---|---|
[펌] SimpleJSON (0) | 2016.08.08 |
Convert Excel to JSON (0) | 2014.03.04 |