2017-06-15 1 views
2

Je suis nouveau à jQuery et Ajax et im essayant d'utiliser jQuery et ajax pour faire une demande pour un fichier JSON. C'est la structure.Ajax obtenir une demande pour un fichier json en utilisant jquery

[ 
    { 
    "userId": 1, 
    "id": 1, 
    "title": "delectus aut autem", 
    "completed": false 
    }, 
    { 
    "userId": 1, 
    "id": 2, 
    "title": "quis ut nam facilis et officia qui", 
    "completed": false 
    } 
] 

Je veux mettre cela dans un tableau d'objets. Mon code est ce

$("button").click(function(){ 
    $.get("https://jsonplaceholder.typicode.com/todos", function(data, status){ 
     array=JSON.parse(data); 
      join(); 
      render(); 

    }); 
}); 

qui ne marche pas le travail, mais cela ne

var xhttp= new XMLHttpRequest(); 
xhttp.onreadystatechange=function() 
{ 
    //console.log(this.readyState+" "+this.status); 
    if(this.readyState==4&&this.status==200) 
    { 
    array=JSON.parse(this.response); 

     join(); 
     render(); 


    } 
} 
xhttp.open("GET","https://jsonplaceholder.typicode.com/todos",true); 
xhttp.send(); 
+0

Et quelle est la question ? – PeterMader

+0

Quel est le problème? –

+0

Pas besoin de 'JSON.parse' je suppose! faites juste 'array = data' –

Répondre

1

Utilisation $.getJSON() au lieu de $.get() comme ci-dessous: -

$.getJSON("https://jsonplaceholder.typicode.com/todos", function(data) { 

    console.log(data);//check data coming properly or not 

    //do rest of the coding accordingly 
}); 
+0

Voir mes modifications –

0

Ce serait remplir le tableau MyObjects, avec les objets à venir dans le JSON.

let myObjects = [];  
$("button").click(function(){ 
     $.get("https://jsonplaceholder.typicode.com/todos", function(data, status){ 
     array=JSON.parse(data); 
     if(response) 
     { 
     data.forEach(function (obj) { 
      myObjects.push(obj) 
     }) 

      join(); 
      render(); 
     } 
     else { 
      response=true; 
     } 
    }); 
}); 
+0

Voir mon article édité –

0

Ici il n'y a pas besoin de vérifier response pour 2 raisons:

  1. Il n'y a aucun argument avec ce nom adopté par $.get. La fonction dans laquelle se trouve le code est un rappel success. Donc, vous êtes sûr d'avoir une réponse positive et vos données sont présentes.

Vous pouvez écrire votre code comme ceci:

$("button").click(function(){ 
    $.get("https://jsonplaceholder.typicode.com/todos", function(data, status){ 
     array=JSON.parse(data); 
     join(); 
     render(); 
    }); 
}); 

Si les données sont déjà JSON, vous n'avez pas besoin d'appeler JSON.parse:

$("button").click(function(){ 
    $.get("https://jsonplaceholder.typicode.com/todos", function(data, status){ 
     join(); 
     render(); 
    }); 
}); 
+0

Voir mes modifications –