J'utilise fetch polyfill pour récupérer un JSON ou du texte à partir d'une URL, je veux savoir comment puis-je vérifier si la réponse est un objet JSON ou s'il s'agit uniquement de texte
fetch(URL, options).then(response => {
// how to check if response has a body of type json?
if (response.isJson()) return response.json();
});
javascript
json
fetch-api
Sibelius Seraphini
la source
la source
Réponses:
Vous pouvez vérifier le
content-type
de la réponse, comme indiqué dans cet exemple MDN :Si vous devez être absolument sûr que le contenu est un JSON valide (et ne pas faire confiance aux en-têtes), vous pouvez toujours accepter la réponse en tant que
text
et l'analyser vous-même:Asynchroniser / attendre
Si vous utilisez
async/await
, vous pouvez l'écrire de manière plus linéaire:la source
Utilisez un analyseur JSON comme JSON.parse:
la source
Vous pouvez le faire proprement avec une fonction d'assistance:
Et puis utilisez-le comme ceci:
Cela générera une erreur afin que vous puissiez le
catch
faire si vous le souhaitez.la source