마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

올바른 Json 사용법

0 추천
Json을 종종 쓰다보면 가끔 이게 올바른 Json 사용법일까? 궁금할때가 있습니다.

가끔 데이터를 줄이기 위해서

1)

[

   { "category" : "food", "score" : 0.5 },

   { "category" : "car", "score" : 0.2 },

   ...

]

1)과 같은 형식에서

 

2)

{

   "food" : 0.5,

   "car" : 0.2

}

2)와 같은 형식으로 사용하곤 하는데요..

2)는 데이터가 절약될지는 몰라도.. 올바른 Json 사용법이 맞을까 궁금한데요. (물론 순서는 중요하지 않습니다.)

둘다 사용은 가능하지만 2)는 JsonObject의 key가 고정되지 않아서 잘못된것같다는 느낌을 받을때가 있습니다.

2)과 같이 사용하면, 올바른 Json사용법이 아닐까요? 궁금합니다.
탈옥고릴라 (200 포인트) 님이 2018년 7월 25일 질문
탈옥고릴라님이 2018년 7월 25일 수정

1개의 답변

0 추천
우리는 Json으로 어떤 객체에 대한 정보를 가지고 오는 것입니다.

Json은 형식으로서 객체를 표현하는 방법중의 하나입니다.

즉, 우리가 무엇을 가져올 것인지가 중요한 것입니다.

페이스북의 예를 든다면, 우리가 Post 목록을 가져온다고 가정하죠.

그러면, Post ID, Post Name, WriterID, Content, AttachedFiles, NumberOfLikes, ....

이런 정보들을 가지고 올 것입니다.

즉, 포스트라는 객체의 목록을 가져옵니다.

그러려면 포스트 객체를 표현하기 위한 요소들을 가지고 와야 합니다.

데이터를 아끼는 시대는 지났습니다. 데이터를 아끼려면 Json을 쓰면 안됩니다.

예전에는 이런식으로 정의했죠.

PostID 4바이트 + PostName 20바이트 + ...

구분자도 없이 바이트 배열로 프로토콜을 정의했습니다.

그래서 데이터를 눈으로 보기 힘들었죠. 게다가 PostName을 20바이트에서 100바이트로 바꾸려면 프로토콜을 다 다시 정의하고, 클라이언트와 서버의 파서를 다 수정했어야 합니다.

Json이나 Http의 가장 큰 장점중의 하나는 데이터의 대부분을 사람의 눈으로 볼 수 있다는 점입니다.
그리고 또하나 길이 제한이 거의 없다는 점이죠. (숫자를 제외하곤)

때문에, 눈으로도 무엇이 잘못되었는지 알 수 있는 것이죠.

데이터를 아끼지 않아도 가장 빠른게 웹 서버입니다.

과거의 데이터 패킷을 아껴야 하는 기준으로 본다면, HTTP는 이미 오래전에 없어졌어야 하고,

현재의 웹서버도 없었을 것입니다.

결론적으로 데이터는 보이는 게 유리하고, 데이터는 아낄 필요가 없으며,

객체를 어떻게 설계할 것인지에 따라서 Json의 구조는 달라지는 것입니다.
Will Kim (43,170 포인트) 님이 2018년 7월 26일 답변
...