Pourquoi JSON.analyser n'est pas de travail?
J'ai défini le type "text", parce que je ne veux pas Jquery analyser mon JSON automatiquement.
Mon code est le suivant:
var membId = '5';
$('#submitNewDescription').live('click',function(){
//An ajax request is made to update the DB
$.ajax({
url: '../../cgi-bin/qualification.py',
type: 'POST',
data: ({newDescription:$('#newDescription').val(),id:membId}),
dataType: 'text',
cache: 'false',
success: function(data){
json = JSON.parse(data);
console.log(data);
console.log(json);
}
});
});
Et retourne cette chaîne: {"error":["ORA-01031 privilèges insuffisants"]} dans les deux console.enregistrer les commandes. Cela signifie que l'analyse n'est pas de travail car il ne renvoie pas à un objet JavaScript. JSONLint me dit que c'est un JSON valide.
Quelqu'un a une idée de ce qui se passe?
Grâce
MODIFIER
Je peux le mettre à 'json', c'est pas le problème. Le problème est que JSON.analyser et $.parseJSON devrait fonctionner. Car ils ne sont pas, j'ai changé le 'type' de 'json', mais la même chaîne est renvoyée. Je n'ai aucune idée de ce qui se passe.
Si l'analyse n'est pas réussie,
json
ne contient pas la chaîne, mais serait undefined
. Il doit y avoir quelque chose d'autre. Assurez-vous que json
n'est pas un objet? Ce n' typeof json
vous donner? Notez également que json
est une variable globale (qui ne devrait pas l'être).Ce navigateur vous r'aide? Je l'ai essayé avec ff3.6 un il a travaillé parfait. essayez [lien]jsfiddle.net/scheffield/URDBv
C'est drôle de voir comment les choses simples sont parfois. Le problème était que. json n'était pas une variable globale, j'ai juste oublié de le déclarer. Et au lieu JS dites-moi qui est indéfini, il était bien mieux de ne pas le parse.@Felix Kling
OriginalL'auteur Frias | 2011-03-14
Vous devez vous connecter pour publier un commentaire.
Probablement parce que vous êtes à la recherche pour
$.parseJSON
à la place? Aussi, je beieve jQuery va regarder les données et de faire un meilleur jugement lors de l'analyse avant de passer à la fonction de rappel. Donc, si ça ressemble à du JSON les chances sont que jQuery est déjà en vous donnant un objet JavaScript qui ensuite ne peut pas être ré-analysée à l'aide deJSON.parse
/$.parseJSON
.Vous pouvez également modifier votre
dataType
champ 'json' et laissez jQuery le faire pour vous...D'accord. Et mon "pouvoir" était plus implicite de "doit". Mais depuis qu'il est de décider contre lui (pour quelque raison que ce soit), j'ai juste pensé que je jetterais là-bas. Bien qu'il ne fait pas de sens pour le mettre hors tension jusqu'à ce que le succès de la fonction seul (première ligne) de la convertir.
OriginalL'auteur Brad Christie
changement
dataType: 'text'
àdataType: "json"
et aussiJSON.parse
à$.parseJSON
OriginalL'auteur Santosh Linkha
La
JSON
bibliothèque n'existe pas dans tous les navigateurs. Vous pourriez avoir besoin d'inclure votre propre comme http://developer.yahoo.com/yui/json/Ou comme les autres l'ont suggéré, utiliser le jQuery. Vous pouvez également déclarer
json
commevar json = ...
OriginalL'auteur Edgar
Dans mon cas, je l'ai eu à travailler comme suit:
Avis je peux: accéder au champ json directement dans l'objet de la réponse
OriginalL'auteur Gene Bo