Quelque chose comme :
EDIT : La solution ne doit pas contenir try/catch. Certains d'entre nous tourner sur « pause sur toutes les erreurs » et ils n’aiment pas le débogueur se brisant sur les chaînes Json non valides.
Quelque chose comme :
EDIT : La solution ne doit pas contenir try/catch. Certains d'entre nous tourner sur « pause sur toutes les erreurs » et ils n’aiment pas le débogueur se brisant sur les chaînes Json non valides.
Je sais je suis 3ans tardivement à cette question, mais je me sentais comme carillon.
Alors que la solution du Gumbo fonctionne très bien, il ne manipule pas des quelques cas où aucune exception n’est déclenchée pour``
Je préfère aussi revenir le JSON analysé en même temps, si le code appelant n’a pas à appeler `` une seconde fois.
Cela semble fonctionner bien pour mes besoins :
Jetez un oeil autour de la ligne 450 de https://github.com/douglascrockford/JSON-js/blob/master/json2.js
Il y a une expression rationnelle qui recherchent un JSON valide, quelque chose comme :
dans prototype js, nous avons isJSON de méthode. essayer ça
http://API.PrototypeJS.org/Language/String/prototype/isjson/
Vous pouvez utiliser le javascript eval() fonction pour vérifier si il est valide.
par exemple
var jsonString = '{ "Id": 1, "Name": "Coke" }';
var json;
try {
json = eval(jsonString);
} catch (exception) {
//It's advisable to always catch an exception since eval() is a javascript executor...
json = null;
}
if (json) {
//this is json
}
Alternativement, vous pouvez utiliser JSON.parse
fonction de json.org:
try {
json = JSON.parse(jsonString);
} catch (exception) {
json = null;
}
if (json) {
//this is json
}
Espérons que cette aide.
AVERTISSEMENT: eval()
est dangereux si quelqu'un ajoute malveillants code JS, car il va l'exécuter. Assurez-vous que la Chaîne JSON est digne de confiance, c'est à dire que vous l'avez obtenu à partir d'une source de confiance.
Edit Pour mon 1er solution, il est recommandé de le faire.
try {
json = eval("{" + jsonString + "}");
} catch (exception) {
//It's advisable to always catch an exception since eval() is a javascript executor...
json = null;
}
Pour garantir json-ness. Si l' jsonString
n'est pas pur JSON, eval lèvera une exception.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.