본문 바로가기

카테고리 없음

Json 파일이란?

 

Json (JavaScript Object Notation) 자바스크립트 객채 표기법이란 뜻이고, 단순한 데이터 포멧입니다..
서버에서 클라이언트로 데이터를 보낼 때, 데이터를 쉽게 표기해서 전달 할 수 있는 장점이 있고 클라이언트가 사용하는 언어에 상관 없이 데이터를 주고 받을 수 있도록 일정한 패턴을 지닌 문자열을 생성해 내보내면 클라이언트는 자기만의 방식으로 데이터를 온전히 저장하고 표시할 수 있게 됩니다. (출처:나무위키)

https://namu.wiki/w/JSON

 

json파일이 가지고 있는 데이터를 받아서 객체나 변수에 할당하기 위해 사용합니다.
대한민국 공공 데이터 포털 사이트에서 제공하는 오픈 API 에서도 Json 포맷 이 많습니다.

 

최근 WebGL로 몇몇 개발 프로젝트를 진행 했는데 모델 그래픽 쪽에서 json파일의 벨류값을 조절하는 일이 많았습니다. 

josn파일의 구조는 "Object(객채)":Array(배열), 의 식입니다.

예)

  "black_glass":
  [     
    { 
      "roughness":0,
      "metalness":0,
      "envMapIntensity":0,
      "transparent":false,
      "opacity":0.9
    }
  ]

,

  "tire":
  [     
    {
      "color":"rgb(24, 24, 24)",
      "roughness":0.37,
      "metalness":0.8,
      "envMapIntensity":0.3
    }
  ]

 

기본적인 메테리얼 값을 json 파일에 벨류값으로 설정하고 수정한 다음 서버에 업데이트 하고 웹에서 바로 확인 할 수 있도록 셋팅해서 보다 손쉽게 재질을 수정할 수 있었습니다.

 

그리고 대괄호 상단에 저렇게 네임을 지칭 해주면 json파일에서 원하는 특정 data만 추출할 수 있습니다. 이를 json parsing이라고 합니다.

 

위 예문을 보면 유리이기 때문에 roughness(거칠기)의 값을 0으로 했고 metalness(금속성)도 0으로 했습니다.

envMapIntensity (환경맵 강도) 는 일부러 값을 줄이기 위해 0으로 했고 transparent 역시 불투명한 유리의 느낌을 주기 위해서 false를 주었습니다. opacity값 역시 불투명한 유리이기 때문에 0.9를 주었습니다. (1에 가까울수록 불투명)

 

이와 다른 느낌의 tire는 컬러를 rgb로 해서 직접 입력하였고, roughness, metalness, envMapIntensity의 벨류값을 적절하게 주었습니다.