TypeScript'te JSON verisini JSON.parse() ile geçiremezsiniz


TypeScript, JSON.parse() kullanıldığında bir hata fırlatıyor. Ona bu json verisini gönderdiğimde:

{
    "AXzgeQ7vXOjWnFrgjHiM": {
        "0-17-13955610754117-8-2021": {
            "channelId": "17", 
            "end": "1642091400000", 
            "id": "0-17-13955610754117-8-2021", 
            "start": "1642090860000", 
            "title": "Yle Uutiset Alueeltasi", 
            "type": "broadcast"
        }
    }
}

Aşağıdaki gibi ithal edilir: import stubReminders from './stub_data.json';

Hata veriyor:

Tür tipi '{ AXzgeQ7vXOjWnFrgjHiM: { "0-17-13955610754117-8-2021": { channelId: string; end: string; id: string; start: string; title: string; type: string; }; }; }' türündeki argüman 'string' türündeki parametreye atanamaz.ts(2345)

JSON.parse()'i başarılı bir şekilde kullanmak için neyi değiştirmeliyim?

Cevap #1

JSON.parse fonksiyonu bir string parametre olarak alır. Ona bir nesne geçirmeye çalışıyorsunuz. Bu yüzden JSON.parse kullanmak istiyorsanız, önce onu bir stringe dönüştürmelisiniz.

Ama unutmayın, ithal edilen nesne zaten bir nesne, bu yüzden onu ayrıştırmaya gerek olmadığını düşünüyorum.

const obj = {
    "AXzgeQ7vXOjWnFrgjHiM": {
        "0-17-13955610754117-8-2021": {
            "channelId": "17", 
            "end": "1642091400000", 
            "id": "0-17-13955610754117-8-2021", 
            "start": "1642090860000", 
            "title": "Yle Uutiset Alueeltasi", 
            "type": "broadcast"
        }
    }
}



console.log(JSON.parse(JSON.stringify(obj)))

Cevap #2

İçe aktardığınız stubReminders öğesine, onu ayrıştırmaya çalışmadan olduğu gibi erişmeyi deneyin. Bir örnek test ettim ve içe aktarma JSON'u otomatik olarak ayrıştırıyor.

Umarım bu işe yarar.

Ayrıca bu codesandbox bağlantısını da kontrol edin.

İlgili makaleler