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

JSON 파싱 질문드립니다.

0 추천
아래와 같이 JSON 결과가 있는테 파싱할 때 질문입니다. 
아래 결과를 활용하기 위해 
각 "name" 별로 severs의 내용을 parsing하고자 합니다. 
제가 초자라 "clouds"는 Json arryay형태로 파싱가능한걸로 알고 있는데,  name의경우 Json object로 처리하면 되나요?
아래와 같은 경우에 clouds라는 array는 size가 1인데, name의 경우 4개가 있습니다. "Product",  "Developer", "box", "Demo"
각 name별로 다시 server들을 파싱하려고 하는데 어떻게 looping하여 파싱하는게 좋을까요?
도움좀 부탁드립니다. 
{
    "resultCode": 0,
    "clouds": [
        {
            "name": "Product",
            "servers": [
                {
                    "type": "appapi",
                    "host": "app.pro.com",
                    "port": 443,
                    "ssl": true,
                    "altPort": 80,
                    "altSsl": false
                },
                {
                    "type": "deviceio",
                    "host": "esp.co.com",
                    "port": 8443,
                    "ssl": true,
                    "altPort": 8080,
                    "altSsl": false
                },
                {
                    "type": "streaming",
                    "host": "co.com",
                    "port": 8443,
                    "ssl": true,
                    "altPort": 8080,
                    "altSsl": false
                }
            ]
        },
        {
            "name": "Developer",
            "servers": [
                {
                    "type": "appapi",
                    "host": "developer.pro.com",
                    "port": 443,
                    "ssl": true,
                    "altPort": 80,
                    "altSsl": false
                }
            ]
        },
        {
            "name": "Demo",
            "servers": [
                {
                    "type": "appapi",
                    "host": "120.43.162.199",
                    "port": 80,
                    "ssl": false,
                    "altPort": 80,
                    "altSsl": false
                }
            ]
        },
        {
            "name": "box",
            "servers": [
                {
                    "type": "appapi",
                    "host": "box.pro.com",
                    "port": 443,
                    "ssl": true,
                    "altPort": 80,
                    "altSsl": false
                }
            ]
        }
    ]
}
익명사용자 님이 2015년 2월 4일 질문

2개의 답변

0 추천
 
채택된 답변
clouds를 JSONArray로 가져오면 size가 4가 나올겁니다

그걸 루프돌리면서

name은 String으로 가져오고

servers는 JSONArray로 가져와서 루프돌림됩니다
alkyne (22,960 포인트) 님이 2015년 2월 4일 답변
0 추천

gson 쓰시면 아주 간단하게 해결되는데...

 

따로 파싱하시고 싶으시면 안드로이드가 제공하는 json api쓰시면 됩니다. 

 

JSONObject object = new JSONObject(전체 json 문자열);

int result = object.getInt("resultCode");

JSONArray arrCloud= new JSONArray(object.getString("clouds"));

arrCloud를 for문 돌면서 servers는 JSONArray로 name은 JSONObject로 가져오시면 됩니다..

 

 

이드로이드 (22,930 포인트) 님이 2015년 2월 4일 답변
...