2017-10-19 17 views
0

Je travaille sur une application React Native, qui récupère une réponse API à partir d'un serveur. Parfois, il renvoie le succès, mais parfois il attrape une erreur.React La récupération native capture parfois une erreur d'analyse JSON

Le code suivant est ma fonction de récupération:

export default async (url, body = null, method = 'GET') => { 
    let config = { 
     method, 
    }; 
    return await fetch(url, config).then((response) => { 
     if (!response.ok) { 
      throw Error(response.statusText); 
     } 
     return response.json(); 
    }).catch(error => { 
     console.warn(error); // sometimes it was catched in here 
    }); 
}; 

Il a été le retour de différents messages d'erreur, par exemple:

[SyntaxError: JSON Parse error: "\u302\" is not a valid unicode escape]
[SyntaxError: JSON Parse error: Invalid escape character 4]
[SyntaxError: JSON Parse error: "\u740\" is not a valid unicode escape]

Je suis déjà vérifié ma réponse API via le navigateur et il n » ai pas Je ne trouve rien de mal avec la réponse. Je pensais que quelque chose n'allait pas avec mon code ES.

Qu'est-ce qui ne va pas ici ...?

Répondre

0

Le \ U302 \ caractère semble être quelque chose de similaire au symbole^appelé "COMBINAISON CIRCONFLEXE ACCENT" http://www.fileformat.info/info/unicode/char/0302/index.htm

Et \ u740 \ est un « SYRIAQUE FEMININE DOT http://www.fileformat.info/info/unicode/char/0740/index.htm

L'analyseur JSON Je ne suis pas capable de gérer ces personnages, je suppose, ou du moins pas de la façon dont ils sont présentés. On dirait qu'ils sont utilisés comme un personnage d'échappement, mais il est difficile de le savoir puisque vous n'avez pas fourni d'échantillons de la sortie qui a généré chaque erreur

+0

Merci d'avoir répondu. Voici un exemple de sortie JSON: https://pastebin.com/vduDQJ8g. Mais, parfois, il peut le gérer. –

+0

Quelle erreur correspond à cette sortie? Si vous pouviez fournir le message d'erreur complet associé à cette sortie JSON, cela aiderait. –

+0

Il est difficile de trouver où est exactement l'emplacement de l'erreur, car parfois il a été analysé avec succès. Est-ce un bug d'aller chercher? –