2017-08-31 1 views
0

Bonjour Je veux ajouter le json analysé (que j'obtiens de xmlhttprequest) dans un fichier html.Ajout de json parsed au html

Voici mon code:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<title>alert solr response</title> 
<script src="https://code.jquery.com/jquery-3.2.1.js"> 
</script> 
<script> 
    var xhr = new XMLHttpRequest(); 
    xhr.onreadystatechange = function() { 
     if (xhr.readyState == XMLHttpRequest.DONE) { 
      var json = JSON.parse(xhr.responseText); 
      var data = json.facet_counts.facet_dates["dc.date.accessioned_dt"]; 
      delete data.gap; 
      delete data.end; 
      delete data.start; 
      console.log(data) 
      $("#test").append(data); //here is the problem, I could append xhr.Responsetext but this is not what I want 
     } 
    } 
    xhr.open('GET', 'http://localhost:8080/solr/search/select?indent=on&rows=0&facet=true&facet.date=dc.date.accessioned_dt&facet.date.start=2016-01-01T00:00:00Z&facet.date.end=2017-12-01T00:00:00Z&facet.date.gap=%2B1MONTH&q=search.resourcetype:2&wt=json&indent=true', true); 
    xhr.send(null); 
</script> 
</head> 
<body> 
<p id = "test">This is the json sample: <br></p> 
</body> 
</html> 

Je sais qu'il ya beaucoup de questions là-bas similaires et les doublons possibles, je suis désolé, je ne pouvais pas les utiliser pour mon cas (Etre un noob et tout) Merci

+0

stringify ne semble pas agréable et est difficile à lire, je veux tous les domaines dans les différentes lignes comme dans JSON –

+0

'JSON.stringify (obj, null, 2);' [Voir rencontrer dieu] (https://stackoverflow.com/questions/4810841/how-can-i-pretty-print-json-using-javascript) –

+0

Juste un conseil si vous utilisez jQuery, [$ .get()] (https://api.jquery.com/jquery.get/) – Endless

Répondre

0

Vous pouvez simplifier un peu si vous utilisez jQuery, quand vous obtenez vos données vous avez obtenu stringify le contenu en utilisant le troisième argument pour obtenir l'indentation que vous voulez, car c'est juste du texte simple, vous devez également Ajoutez-le à une balise <pre> ou définissez le css sur la balise p sur: white-space: pre

$.get('https://httpbin.org/get').then(function(data) { 
 
    delete data.gap; 
 
    delete data.end; 
 
    delete data.start; 
 

 
    $("#test").text(JSON.stringify(data, null, 2)); 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<pre id="test"></pre>

+0

OP voulait analyser, puis supprimer un élément json, vous n'avez pas de partie analyse dans votre code jquery. – Uttam

+0

chose est, vous n'avez pas besoin de la partie d'analyse cuz jquery le fera pour vous ... – Endless