2013-08-28 5 views
0

j'ai une chaîne JSON A. A est au format:JSON.parse ne fonctionne pas sur les navigateurs mobiles anciens

'[{"key1":"val1",...,"keyn":"valn"},{...},...,{...}]' 

A est créé sur un serveur PHP en utilisant json_encode (Array).

var str = JSON.parse (A); fonctionne dans tous les navigateurs de bureau, safari mobile, chrome mobile, etc.

var str = JSON.parse (A); déclenche une exception ('exception: can not parse string') dans le navigateur par défaut d'Android 2.2 et les navigateurs de Blackberry. JSON.Parse fonctionne dans le navigateur mais pas avec ma chaîne JSON A. Y a-t-il un bogue dans l'analyseur JSON sur ce navigateur?

modifier. Si je mets A dans un textArea et copiez et collez la chaîne directement dans le code javascript .. JSON.parse ('[{"key1": "val1", ..., "keyn": "valn"}, { ...},...,{...}]') travaux.

Mais, cela ne fonctionne pas -> JSON.parse ($ ('div'). Html (A) .text());

+0

le jeu de caractères est utf8 –

+0

J'ai utilisé utf8_decode (A) en php avant que la chaîne JSON ne soit envoyée au client et qu'elle ne l'ait pas résolue. –

+0

Lorsque je tape "Android 2.2 json ne peut pas analyser la chaîne" dans Google, la première page de résultats sont toutes les questions posées ici sur Stack débordement - avez-vous lu l'un d'eux? – symcbean

Répondre

1

le JSON.parse plus n'analyser un objet ....

surround essayer comme ci-dessous ...

'{ "data" : [{"key1":"val1",...,"keyn":"valn"},{...},...,{...}] }' 

si fonctionne pas ... vous pouvez essayer

function getObj(json){ 
    return (new Function(" return (" + json + "); "))(); 
} 

var value = getObj('[{"key1":"val1",...,"keyn":"valn"},{...},...,{...}]'); 
+0

Cela n'a pas fonctionné. –

+0

je mise à jour, essayez à nouveau –

+0

ok je vais essayer ça. est-ce un problème connu? Est-ce expliqué quelque part? –

0

essayez:

var myJSON = eval (yourJSONString);

+0

Cela n'a pas fonctionné. –

Questions connexes