2016-09-14 1 views
-3

J'ai un problème avec mon javascript. Je suis en train de charger tableau JSON ag-réseau comme celui-ci et les travaux ci-dessous bien parce que je suis simplement charger JSON d'un fichier JSON:Erreur lors du chargement de json depuis javascript

var httpRequest = new XMLHttpRequest(); 
    httpRequest.open('GET', '../dist/output.json'); 
    httpRequest.send(); 
    httpRequest.onreadystatechange = function() { 
     if (httpRequest.readyState == 4 && httpRequest.status == 200) { 
      var httpResult = JSON.parse(httpRequest.responseText); 


      function isNumeric(n) { 
       return !isNaN(parseFloat(n)) && isFinite(n); 
      } 

      var parsedData = httpResult.map(function(obj) { 
       return Object.keys(obj).reduce(function(memo, key) { 
        var value = obj[key]; 
        memo[key] = isNumeric(value) ? Number(value) : value; 

        return memo; 
       }, {}) 
      }) 

Mais, quand je le fais de la manière suivante (c.-à- , obtenir le tableau JSON d'un jsp, console.log (jsonArray) affiche très bien, mais j'obtiens l'erreur:

var jsonArray = document.getElementById("jsonArray"); 
     console.log(jsonArray); 
     var httpRequest = new XMLHttpRequest(); 
     httpRequest.open('GET', jsonArray); 
     httpRequest.send(); 
     httpRequest.onreadystatechange = function() { 
      if (httpRequest.readyState == 4 && httpRequest.status == 200) { 
       var httpResult = JSON.parse(httpRequest.responseText); 


       function isNumeric(n) { 
        return !isNaN(parseFloat(n)) && isFinite(n); 
       } 

       var parsedData = httpResult.map(function(obj) { 
        return Object.keys(obj).reduce(function(memo, key) { 
         var value = obj[key]; 
         memo[key] = isNumeric(value) ? Number(value) : value; 

         return memo; 
        }, {}) 
       }) 

Je reçois l'erreur suivante:

Failed to load resource: the server responded with a status of 404 (Not Found) 

Comment changer le premier code afin que je peux lire correctement de json Array, qui a toutes les données json.

UPDATE:

jsonArray est la suivante à partir de la page JSP:

JSONArray jsonArray = new JSONArray(orderDetailsList1); 

<input type="hidden" value="<%out.println(jsonArray);%>" id="jsonArray"/> 
+2

Pourquoi? Votre URL est erronée. Comment réparer? Déterminez l'URL appropriée. –

+1

Qu'est-ce que l'élément '# jsonArray'? –

+0

@MarcB Quelle URL? – Shek

Répondre

0

jsonArray est un objet DOM. Pour accéder à son attribut value, utilisez la propriété value:

httpRequest.open('GET', jsonArray.value); 
+0

Ok, je comprends. Je ne sais pas pourquoi jsonArray est passé en tant que null de jsp dans le fichier js. – Shek