본문 바로가기
3DMAX/Script

Max Script 에서 Json 데이터 파싱하기

by tartist 2015. 12. 17.

1. 먼저 Newtonsoft.dll 파일을 구해서 원하는 폴더에 넣어 놓습니다. Dll 이 있어야 편하게 파싱이 가능합니다.

- 처음에 DLL이 없다보니까 텍스트의 라인과 위치까지 세면서 코드를 짜느라 굉장히 애먹었는데, DLL로 파싱하니 굉장히 간단하게 코드가 마무리되었습니다.

구글에 치시면 금방 찾으실 수 있습니다.

 

2. 사용될 스크립트 코드에 DLL 을 로드 하는 구문을 넣어 줍니다.

위 경로에 DLL을 넣고 아래 코드를 넣어주면 DLL을 로드해 옵니다.

 

 

 

3. JSON이 사용될 부분에서 파싱한다는 코드를 넣어줍니다.

  local data ="" 

  if filePath == undefined then
   return 0

  fs=openFile filePath mode:"r"

  while not eof fs do
  ( 
   jsonString = readline fs
   append data jsonString   ---> 제이슨 스트링을 data 라는 텍스트 어레이 변수에 담으면 제이슨을 읽어옵니다.
  )

  o = JObj.parse data -> 읽어온 제이슨 데이터를 파싱해주는 구문입니다.

 

 

4. 파싱이 완료되면 아래같은 간단한 코드로 원하는 부분의 텍스트 정보를 읽어오게 됩니다.

   sidelength = ((o.item["gridCells"].item[1].item["sideLength"].value) as integer)
--> 제이슨 데이터의 GridCells의 첫번째 아이템에서 sidelength의 값을 읽어오라는 코드입니다.




위 과정을 통해 유니티의 그리드 정보를 json으로 읽어와서 그대로 맥스 스크립트로 옮겨올 수 있었습니다.

 

test.json

UnityGridViewer.mse