Today, What I learned?
ํ๋ก์ ํธ ์ค!.. api์์ ๊ฐ์ ธ์ค๋ xml ๋ฐ์ดํฐ๋ฅผ JSON ๋ฐ์ดํฐ๋ก ๋ณํํ๊ธฐ ์ํด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ณผ์ ์ ์ ๋ฆฌํด ๋ณธ๋ค.
๋จผ์ ์ฌ์ฉํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ด๊ฒ์ด๋ค.
https://github.com/connected-io/react-native-xml2js
๋ณํํ๊ธฐ
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์ผ๋ก ๋ฐ๊พธ๊ธฐ.. ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋์ ์ฝ๊ฒ ํด๊ฒฐํ ์ ์์๋ค! (๋ง๋ฅ ์ฝ์ง ์์์..)
'๐ Studying > ๐ TIL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ReactNative] ์ ํ ํผ์นจ ๋ฒํผ๊ณผ ์์ญ ๋ง๋ค๊ธฐ (0) | 2023.01.13 |
---|---|
[ReactNative] ํด๋ฆญํ ๋๋ง๋ค React Query์ useQuery๋ก ๋ค๋ฅธ API ๋ถ๋ฌ์ค๊ธฐ (0) | 2023.01.11 |
[ReactNative] ์ค์ฒฉ ๋ผ์ฐํฐ ๋ค๋น๊ฒ์ด์ ์ง์ ํด์ ํ์ด์ง ์ด๋ (0) | 2023.01.06 |
[ReactNative] React-Query๋ก ๋ฌดํ์คํฌ๋กค ์ ์ฉํ๊ธฐ (1) | 2023.01.05 |
[ReactNative] <FlatList> ์ <ScrollView> (0) | 2023.01.04 |
Comment