woong's

Unity Json Parser 사용하기 본문

Develop/Unity

Unity Json Parser 사용하기

dlsdnd345 2016. 2. 13. 20:07

Unity Json Parser 사용하기


안녕하세요. 이번 포스트는 Unity 에서 Json Parser 이용하는 방법에 대해서 포스트를 써보겠습니다 .


c# 에서는 기본 적으로 xml 은 지원하지만 Json은 지원하지 않는다고 합니다 .

그래서 외부 라이브러리를 다운받아 import 해주어야 합니다 .


라이브러리 다운로드

 

위링크를 통해 접근 하면 LitJson 을 다운 받을수 있는 사이트가 나타 납니다.






저 링크를 통해 다운로드 하면 알집을 다운로드 할 수 있습니다 .

litjson-0.7.0 > bin 경로에 들어가면 라이브러리를 확인 할 수 있습니다 .




이제 저 파일을 Unity 프로젝트로 이동시키면 됩니다 .




Unity 프로젝트 에 Plugins 폴더를 생성후에 그안에 라이브러리를 넣어 주시면 되겠습니다 .


1
using LitJson;



사용하실 스크립트 파일 상단에 using 을 통해 라리브러리를 사용하겠다는 것을 명시 합니다 .


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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
using LitJson;
using UnityEngine;
using System.Collections;
 
public class WWWWiki : MonoBehaviour {
 
    // Use this for initialization
    void Start () {
    
    }
    
    // Update is called once per frame
    void Update () {
    
    }
 
    public WWW GET(string url) 
    { 
        WWW www = new WWW (url);
        StartCoroutine(WaitForRequest(www)); 
        return www; 
    } 
 
    private IEnumerator WaitForRequest(WWW www) 
    { 
        yield return www; 
        // check for errors 
        if (www.error == null
        { 
            Debug.Log("WWW Ok!: " + www.text); 
            ProcessPlayer(www.text);
        } 
        else 
        { 
            Debug.Log("WWW Error: " + www.error); 
        } 
    } 
 
    private void ProcessPlayer(string jsonString){
 
        JsonData jsonPlayer = JsonMapper.ToObject(jsonString);
        string isOk = jsonPlayer ["ok"].ToString();
 
        if(isOk.Equals("True")){
 
            Debug.Log(jsonPlayer["data"]["message"]);
        }
    }
 
}
 

 

 

 

​제가 사용한 전체 코드입니다 .

부분 설명을 해보겠습니다.


우선 제가 Json 을 보고 사용한 예제 입니다 .




ok , messgae , data [ message ] 이형태로 json을 만들었습니다 .



1
2
3
4
5
6
7
8
9
10
 private void ProcessPlayer(string jsonString){
 
        JsonData jsonPlayer = JsonMapper.ToObject(jsonString);
        string isOk = jsonPlayer ["ok"].ToString();
 
        if(isOk.Equals("True")){
 
            Debug.Log(jsonPlayer["data"]["message"]);
        }
    }



이부분이 핵심 코드 입니다 .


 JsonData jsonPlayer = JsonMapper.ToObject(jsonString);

jsonString 을 JsonData로 Converter 를 진행합니다 .


진행후에 

string isOk = jsonPlayer ["ok"].ToString();

 

JsonData . 을 통해서 해당 Key 값을 입력하면 데이터를 받아 올수 있습니다 .


두댑스의 경우에는 

jsonPlayer["data"]["message"]

이와같이 뒤쪽으로 두번째 댑스의 Key 값을 넣어 주면 되겠습니다 .


굉장히 간단하게 Json을 파싱할수 있는것 같습니다 .


P.S 저가 조금 헤맨 부분이 있어서 다른분들은 그러지 않을수 있도록 간단한 글 남겨 보겠습니다 .


jsonPlayer ["ok"

 

저는 위 코드가 String 으로 반환이 되는 줄 알고 계속 String 으로 접근하였는데 그렇지 않아 

뒤쪽으로 ToString 을 붙어주어야 String 으로 사용 할 수 있습니다 .


Comments