[ReactNative] xml2js ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก XML to JSON ํ๊ธฐ
Today, What I learned?
ํ๋ก์ ํธ ์ค!.. api์์ ๊ฐ์ ธ์ค๋ xml ๋ฐ์ดํฐ๋ฅผ JSON ๋ฐ์ดํฐ๋ก ๋ณํํ๊ธฐ ์ํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ณผ์ ์ ์ ๋ฆฌํด ๋ณธ๋ค.
๋จผ์ ์ฌ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด๊ฒ์ด๋ค.
https://github.com/connected-io/react-native-xml2js
GitHub - connected-io/react-native-xml2js: XML to JavaScript object converter.
XML to JavaScript object converter. Contribute to connected-io/react-native-xml2js development by creating an account on GitHub.
github.com
๋ณํํ๊ธฐ
const parseString = require('react-native-xml2js').parseString;
export const getBoxOffice = () =>
fetch(
`${BASE_URL}/boxoffice?service=${API_KEY}&ststype=day&date=${getYesterdayString()}&catecode=GGGA&area=11`
)
.then((res) => res.text())
.then((data) => {
const cleanedString = data.replace('\ufeff', '');
let boxOfficeData;
parseString(cleanedString, (err, result) => {
if (err !== null) {
console.log('error: ', err);
return;
}
boxOfficeData = JSON.parse(JSON.stringify(result));
});
return boxOfficeData;
})
.catch((error) => console.log(error));
ํจ์นํด์์ parseString ํจ์๋ก ๋ฐ์ดํฐ๋ฅผ ํ์ฑ ํ๋ค.
featch ํจ์ ์์์ ๋ฐ์ดํฐ๋ฅผ ๋ฆฌํดํด์ฃผ๋ ๊ฒ์ ๊ผญ ์์ง ๋ง์!..
๊ฒฐ๊ณผ๋ฌผ์ ์๋์ ๊ฐ๋ค. ์ด์ ์ด ๋ถ๋ถ์์ boxofs, boxof์์ผ๋ก ๋ค์ด๊ฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ ๋๋ง ํ๋ฉด.. ๐ฅบ
Non-whitespace before first tag
const cleanedString = data.replace('\ufeff', '');
์ ๋ถ๋ถ์ Non-whitespace before first tag
๋ผ๋ ์๋ฌ๊ฐ ๋ ์ ๋ฃ์ด์ฃผ์๋ค.
fetch ํด์จ xml ๋ฐ์ดํฐ์์ ๊ณต๋ฐฑ์ ์์ ์ฃผ๋ ์ฝ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ ํจ์๋ฅผ parseString ํจ์์ ๋งค๊ฐ๋ณ์๋ก ๋ฃ์ด์ฃผ๋ฉด ๋๋ค.
xml ๋ฐ์ดํฐ๋ฅผ json์ผ๋ก ๋ฐ๊พธ๊ธฐ.. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋์ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์์๋ค! (๋ง๋ฅ ์ฝ์ง ์์์..)