2013-04-03 3 views
-4

J'ai un fichier json. Maintenant, je veux lire le contenu en utilisant jquery. Une façon consiste à utiliser la méthode $ .getJSON() et d'autres méthodes jquery json qui pourraient être utilisées mais ces méthodes enverront une requête au serveur et liront le contenu et enverront le contenu au client. Est-il possible de lire le contenu du fichier .json sans envoyer de requête au serveur?json utilisant jquery

Voici mon fichier menu.json qui est essentiellement tiré de l'exemple json.org. J'ai besoin de cela pour un but de démonstration simple.

fichier
{ 
    "menu": { 
     "id": "file", 
     "value": "File", 
     "popup": { 
      "menuitem": [ 
       {"value": "New", "onclick": "CreateNewDoc()"}, 
       {"value": "Open", "onclick": "OpenDoc()"}, 
       {"value": "Close", "onclick": "CloseDoc()"} 
      ] 
     } 
    } 
} 

Mise à jour

de menu.json est dans mon système de fichiers comme celui-ci

projectfolder/ 
    index.html 
    menu.json 
+0

Où le fichier est-il stocké? Si elle est stockée sur votre serveur, vous devrez alors faire une demande au serveur. –

+0

Vous pouvez assigner ce qui précède à une variable, puis le convertir en objets en utilisant jQuery. Il y a une méthode d'utilité pour le faire, je pense. – halfer

Répondre

2

Tous vos fichiers sont d'abord stockés sur le serveur. Si vous souhaitez y accéder sur le client, vous devrez, de quelque manière que ce soit, faire une demande au serveur. $.getJSON() est un excellent moyen de le faire.

Si c'est juste des données que vous souhaitez stocker et n'a pas besoin d'être modifiée humaine ou accessible par d'autres applications, il vous suffit de l'enregistrer comme un objet javascript dans votre code

var obj = { 
    menu: { 
     id: "file", 
     value: "File", 
     popup: { 
      menuitem: [ 
       {value: "New", onclick: CreateNewDoc}, 
       {value: "Open", onclick: OpenDoc}, 
       {value: "Close", onclick: CloseDoc} 
      ] 
     } 
    } 
}; 

Puisque vous apparemment vouloir stocker des fonctions en elle, c'est une meilleure approche. Les fonctions d'évaluation enregistrées en tant que chaînes sur le client ne sont pas considérées comme une bonne pratique, car vous liez étroitement vos données à votre implémentation, et vous permettez théoriquement que des fonctions arbitraires soient liées à l'onclick ici.