Comment obtenir les données d’un fichier json?

J’ai essayé d’utiliser json et ajax avec jQuery et je rencontre des problèmes. J’essaie d’obtenir des données d’un fichier JSON à afficher sur ma page.

Pour le moment, j’essaie simplement de l’envoyer à la console, mais la console devient nulle. Je ne suis pas sûr de ce que je fais bien et de ce que je fais mal, alors je me demandais si je pouvais avoir des indicateurs.

C’est ce que j’ai pour la demande

$(document).ready(function() { var json = (function () { var json = null; $.ajax({ 'async': false, 'global': false, 'url': 'js/refs.json', 'dataType': "json", 'success': function (refs) { json = refs; } }); return json; })(); console.log(json); 

C’est ce qui est dans refs.json

 var refs = { "referee": [ { "name": "Ellie", "company": "University", "position": "Lecturer", "address": "", "phone": "5750", "email": "[email protected]", "type": "Education" }, { "name": "Matthew", "company": "", "position": "", "address": "23 High Street", "phone": " 962", "email": "[email protected]", "type": "Character" } ], "project": [ { "tab": "Dissertation", "title": "Can technology in the home be used to enhance learning of numeracy, in conjunction with the nantional curriculum", "yr": "2013", "link": [ { "name": "Artefact", "links": "fypc", "size": "", "misc": "" } ], "docs": [ {"type": "doc", "links": "fyp.docx", "size" :"3.78MB", }, {"type": "pdf", "links": "fyp.pdf", "size" :"1.76MB", } ], "purpose": "School - Anglia Ruskin University", "grade": "Not yet awarded", "sshot": "fypc.png" }, { "tab": "Network and IT Operations", "title": "Virtual inter-office network with firewall. (Built using PacketTracer 5.3.3)", "yr": "2013", "link": [ { "name": "Serial Cable Connection Version", "links": "", "size": "204KB", "misc": "(Submitted version)" }, { "name": "Frame Relay Version", "links": "", "size": "129KB", "misc": "" }, { "name": "Packet Tracer 5.3.3 Download", "links": "", "size": "48.2MB", "misc": "(.zip)" } ], "docs": [ { "type": "doc", "links": "nio.docx", "size" :"223KB", }, { "type": "pdf", "links": "nio.pdf", "size" :"943.KB", } ], "purpose": "School - Anglia Ruskin University", "grade": "Not yet awarded", "sshot": "nio1.png" } ] }; 

Comme je l’ai dit, la réponse de la console à l’aide de console.log est null. Je ne vois pas où je vais bien ou mal. La demande est un extrait que j’ai reçu d’un post ici ( charge json dans variable )

Tous les pointeurs seraient très appréciés

Merci d’avance

Votre fichier n’est pas JSON!

Cela commence par var refs = ....

Mettez en surbrillance l’assignation (et le point-virgule).

(si vous êtes vraiment paresseux, copiez / collez ce qui devrait être dans le fichier depuis la réponse de @ MikeB)

Une chose que j’ai remarquée est que votre JSON est invalide.

Ligne 39 "size": "3.78MB",

Ligne 44 "size": "1.76MB",

Ligne 79 "size": "223KB",

Tous avaient une virgule supplémentaire

Essayez d’utiliser ceci comme votre JSON

 { "referee": [ { "name": "Ellie", "company": "University", "position": "Lecturer", "address": "", "phone": "5750", "email": "[email protected]", "type": "Education" }, { "name": "Matthew", "company": "", "position": "", "address": "23 High Street", "phone": " 962", "email": "[email protected]", "type": "Character" } ], "project": [ { "tab": "Dissertation", "title": "Can technology in the home be used to enhance learning of numeracy, in conjunction with the nantional curriculum", "yr": "2013", "link": [ { "name": "Artefact", "links": "fypc", "size": "", "misc": "" } ], "docs": [ { "type": "doc", "links": "fyp.docx", "size": "3.78MB" }, { "type": "pdf", "links": "fyp.pdf", "size": "1.76MB" } ], "purpose": "School - Anglia Ruskin University", "grade": "Not yet awarded", "sshot": "fypc.png" }, { "tab": "Network and IT Operations", "title": "Virtual inter-office network with firewall. (Built using PacketTracer 5.3.3)", "yr": "2013", "link": [ { "name": "Serial Cable Connection Version", "links": "", "size": "204KB", "misc": "(Submitted version)" }, { "name": "Frame Relay Version", "links": "", "size": "129KB", "misc": "" }, { "name": "Packet Tracer 5.3.3 Download", "links": "", "size": "48.2MB", "misc": "(.zip)" } ], "docs": [ { "type": "doc", "links": "nio.docx", "size": "223KB" }, { "type": "pdf", "links": "nio.pdf", "size": "943.KB" } ], "purpose": "School - Anglia Ruskin University", "grade": "Not yet awarded", "sshot": "nio1.png" } ] } 

Vous retournez Json var avant d’atsortingbuer les données. S’il vous plaît tester ces changements

 var json= null; $(document).ready(function() { $.ajax({ 'async': false, 'global': false, 'url': 'js/refs.json', 'dataType': "json", 'success': function (refs) { json= refs; LoadedJSON(); } }); }); function LoadedJSON(){ console.log(json); } 

Vous pouvez utiliser eval, une fonction javascript native pour convertir les réponses du serveur (texte brut avec formatage json) en objects json. Si vous utilisez une sorte de bibliothèque javascript, il doit y avoir des fonctions. Dans jQuery, il y a Jquery. parseJson et dans Dojo il y a deJson