이전포스팅 예제에서 소스코드를 변경하여 실습하였다.

이전포스팅  클릭


react-native-xml2js 라이브러리를 설치합니다.


1
npm install react-native-xml2js
cs



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
const API_KEY = "xSpkBj5Uf8pu8S.......";
const API_STEM = "http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getCtprvnRltmMesureDnsty";
var parseString = require('react-native-xml2js').parseString;
 
var SIDO = "경남";
function fetchData() {
    SIDO = encodeURIComponent(SIDO);
    var url = `${API_STEM}?serviceKey=${API_KEY}&numOfRows=10&pageNo=1&sidoName=${SIDO}&ver=1.3`;
   
    return fetch(url)
        .then(response => response.text())
        .then(data => {
            console.log(data);
            parseString(data, function (err, result) {
                console.dir(result);
                console.log(JSON.stringify(result))
                console.log(JSON.parse(JSON.stringify(result)));
                
            });
        })
        .catch(error => {
            console.log(error);
        });
}
export default { fetchData: fetchData};
 
cs


1
2
3
parseString(xml, function (err, result) {
    console.dir(result);
});

cs

위와 같이 해당구문을 이용하여 XML 응답값을 쉽게 파싱할 수 있다. 

JSON.stringfy  이용하여 JSON String 값으로 변경하고, 이를 JSON.parse 이용하여 Json Object 형태로 만들어 줍니다. 



https://beautifier.io/ 이용하여 JSON으로 변경된 데이터를 이쁘게 다시 펼쳐보면 ...


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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
{
    "response": {
        "header": [{
            "resultCode": ["00"],
            "resultMsg": ["NORMAL SERVICE."]
        }],
        "body": [{
            "items": [{
                "item": [{
                    "stationName": ["회원동"],
                    "mangName": ["도시대기"],
                    "dataTime": ["2019-01-07 23:00"],
                    "so2Value": ["0.004"],
                    "coValue": ["0.7"],
                    "o3Value": ["0.022"],
                    "no2Value": ["0.022"],
                    "pm10Value": ["71"],
                    "pm10Value24": ["60"],
                    "pm25Value": ["43"],
                    "pm25Value24": ["31"],
                    "khaiValue": ["90"],
                    "khaiGrade": ["2"],
                    "so2Grade": ["1"],
                    "coGrade": ["1"],
                    "o3Grade": ["1"],
                    "no2Grade": ["1"],
                    "pm10Grade": ["2"],
                    "pm25Grade": ["2"],
                    "pm10Grade1h": ["2"],
                    "pm25Grade1h": ["3"]
                }, {
                    "stationName": ["봉암동"],
                    "mangName": ["도시대기"],
                    "dataTime": ["2019-01-07 23:00"],
                    "so2Value": ["0.003"],
                    "coValue": ["0.6"],
                    "o3Value": ["0.015"],
                    "no2Value": ["0.024"],
                    "pm10Value": ["45"],
                    "pm10Value24": ["43"],
                    "pm25Value": ["31"],
                    "pm25Value24": ["25"],
                    "khaiValue": ["74"],
                    "khaiGrade": ["2"],
                    "so2Grade": ["1"],
                    "coGrade": ["1"],
                    "o3Grade": ["1"],
                    "no2Grade": ["1"],
                    "pm10Grade": ["2"],
                    "pm25Grade": ["2"],
                    "pm10Grade1h": ["2"],
                    "pm25Grade1h": ["2"]
                }, {
                    "stationName": ["상봉동"],
                    "mangName": ["도시대기"],
                    "dataTime": ["2019-01-07 23:00"],
                    "so2Value": ["0.003"],
                    "coValue": ["0.6"],
                    "o3Value": ["0.014"],
                    "no2Value": ["0.034"],
                    "pm10Value": ["58"],
                    "pm10Value24": ["54"],
                    "pm25Value": ["35"],
                    "pm25Value24": ["28"],
                    "khaiValue": ["82"],
                    "khaiGrade": ["2"],
                    "so2Grade": ["1"],
                    "coGrade": ["1"],
                    "o3Grade": ["1"],
                    "no2Grade": ["2"],
                    "pm10Grade": ["2"],
                    "pm25Grade": ["2"],
                    "pm10Grade1h": ["2"],
                    "pm25Grade1h": ["2"]
                }, {
                    "stationName": ["대안동"],
                    "mangName": ["도시대기"],
                    "dataTime": ["2019-01-07 23:00"],
                    "so2Value": ["0.004"],
                    "coValue": ["0.7"],
                    "o3Value": ["0.015"],
                    "no2Value": ["0.015"],
                    "pm10Value": ["58"],
                    "pm10Value24": ["51"],
                    "pm25Value": ["36"],
                    "pm25Value24": ["27"],
                    "khaiValue": ["79"],
                    "khaiGrade": ["2"],
                    "so2Grade": ["1"],
                    "coGrade": ["1"],
                    "o3Grade": ["1"],
                    "no2Grade": ["1"],
                    "pm10Grade": ["2"],
                    "pm25Grade": ["2"],
                    "pm10Grade1h": ["2"],
                    "pm25Grade1h": ["3"]
                }, {
                    "stationName": ["상대동"],
                    "mangName": ["도시대기"],
                    "dataTime": ["2019-01-07 23:00"],
                    "so2Value": ["0.007"],
                    "coValue": ["0.7"],
                    "o3Value": ["0.019"],
                    "no2Value": ["0.028"],
                    "pm10Value": ["57"],
                    "pm10Value24": ["51"],
                    "pm25Value": ["28"],
                    "pm25Value24": ["23"],
                    "khaiValue": ["71"],
                    "khaiGrade": ["2"],
                    "so2Grade": ["1"],
                    "coGrade": ["1"],
                    "o3Grade": ["1"],
                    "no2Grade": ["1"],
                    "pm10Grade": ["2"],
                    "pm25Grade": ["2"],
                    "pm10Grade1h": ["2"],
                    "pm25Grade1h": ["2"]
                }, {
                    "stationName": ["명서동"],
                    "mangName": ["도시대기"],
                    "dataTime": ["2019-01-07 23:00"],
                    "so2Value": ["0.004"],
                    "coValue": ["0.7"],
                    "o3Value": ["0.024"],
                    "no2Value": ["0.029"],
                    "pm10Value": ["57"],
                    "pm10Value24": ["55"],
                    "pm25Value": ["28"],
                    "pm25Value24": ["26"],
                    "khaiValue": ["77"],
                    "khaiGrade": ["2"],
                    "so2Grade": ["1"],
                    "coGrade": ["1"],
                    "o3Grade": ["1"],
                    "no2Grade": ["1"],
                    "pm10Grade": ["2"],
                    "pm25Grade": ["2"],
                    "pm10Grade1h": ["2"],
                    "pm25Grade1h": ["2"]
                }, {
                    "stationName": ["웅남동"],
                    "mangName": ["도시대기"],
                    "dataTime": ["2019-01-07 23:00"],
                    "so2Value": ["0.005"],
                    "coValue": ["0.8"],
                    "o3Value": ["0.020"],
                    "no2Value": ["0.029"],
                    "pm10Value": ["63"],
                    "pm10Value24": ["64"],
                    "pm25Value": ["30"],
                    "pm25Value24": ["26"],
                    "khaiValue": ["84"],
                    "khaiGrade": ["2"],
                    "so2Grade": ["1"],
                    "coGrade": ["1"],
                    "o3Grade": ["1"],
                    "no2Grade": ["1"],
                    "pm10Grade": ["2"],
                    "pm25Grade": ["2"],
                    "pm10Grade1h": ["2"],
                    "pm25Grade1h": ["2"]
                }, {
                    "stationName": ["가음정동"],
                    "mangName": ["도시대기"],
                    "dataTime": ["2019-01-07 23:00"],
                    "so2Value": ["0.006"],
                    "coValue": ["-"],
                    "o3Value": ["-"],
                    "no2Value": ["-"],
                    "pm10Value": ["-"],
                    "pm10Value24": ["-"],
                    "pm25Value": ["-"],
                    "pm25Value24": ["-"],
                    "khaiValue": ["-"],
                    "khaiGrade": [""],
                    "so2Grade": [""],
                    "coGrade": [""],
                    "o3Grade": [""],
                    "no2Grade": [""],
                    "pm10Grade": [""],
                    "pm25Grade": [""],
                    "pm10Grade1h": [""],
                    "pm25Grade1h": [""]
                }, {
                    "stationName": ["용지동"],
                    "mangName": ["도시대기"],
                    "dataTime": ["2019-01-07 23:00"],
                    "so2Value": ["0.003"],
                    "coValue": ["0.3"],
                    "o3Value": ["0.030"],
                    "no2Value": ["0.020"],
                    "pm10Value": ["48"],
                    "pm10Value24": ["48"],
                    "pm25Value": ["25"],
                    "pm25Value24": ["24"],
                    "khaiValue": ["72"],
                    "khaiGrade": ["2"],
                    "so2Grade": ["1"],
                    "coGrade": ["1"],
                    "o3Grade": ["1"],
                    "no2Grade": ["1"],
                    "pm10Grade": ["2"],
                    "pm25Grade": ["2"],
                    "pm10Grade1h": ["2"],
                    "pm25Grade1h": ["2"]
                }, {
                    "stationName": ["반송로"],
                    "mangName": ["도로변대기"],
                    "dataTime": ["2019-01-07 23:00"],
                    "so2Value": ["0.004"],
                    "coValue": ["0.6"],
                    "o3Value": ["0.018"],
                    "no2Value": ["0.018"],
                    "pm10Value": ["205"],
                    "pm10Value24": ["81"],
                    "pm25Value": ["30"],
                    "pm25Value24": ["25"],
                    "khaiValue": ["101"],
                    "khaiGrade": ["3"],
                    "so2Grade": ["1"],
                    "coGrade": ["1"],
                    "o3Grade": ["1"],
                    "no2Grade": ["1"],
                    "pm10Grade": ["3"],
                    "pm25Grade": ["2"],
                    "pm10Grade1h": ["4"],
                    "pm25Grade1h": ["2"]
                }]
            }],
            "numOfRows": ["10"],
            "pageNo": ["1"],
            "totalCount": ["30"]
        }]
    }
}

cs


해당형태로 변경된것을 알 수 있다. 


JSON.parse 참고

JSON.stringfy 참고



블로그 이미지

클라인STR

,