2016-05-02 4 views
-2
<html> 
    <head> 
    <center> 
     <h2> create object from json string</h2> 
    </center> 
    <script> 
    var text='{"fruits":[' + '{"name":"apple","price":"1000"},' 
       + '{"name":"orange","price":"2000"},' 
       + '{"name":"pine","price":"3000"}]}' 
    obj1=JSON.parse(text); 
    document.getElementById("demo").innerHTml = obj1.fruits[1].name + "" + obj1.fruits[2].price; 
    </script> 
    </head> 
</html> 

Ich bin nicht in der Lage, die O/P für dieses Konzept zu bekommen.Ich kann nicht verstehen, was Parsing ist.keine Ausgabe für json .saved in pars.html formet

+1

'innerHTml' oder' innerHTML'? – Tushar

Antwort

0

Verwenden innerHTML statt innerHTml

var text = '{"fruits":[' + '{"name":"apple","price":"1000"}, ' + '{"name":"orange","price":"2000"}, ' + '{"name":"pine","price":"3000"} ] }'; 
 
    obj1 = JSON.parse(text); 
 
    document.getElementById("demo").innerHTML = obj1.fruits[1].name + " " + obj1.fruits[2].price;
<html> 
 

 
<head> 
 
    <center> 
 
    <h2> create object from json string</h2> 
 
    </center> 
 

 
    <div id="demo"></div> 
 
</head> 
 

 
</html>

1

Javascript ist Groß- und Kleinschreibung Sie verwenden zur Zeit innerHTml statt innerHTML, das wird nicht funktionieren:

document.getElementById('demo').innerHTML = obj1.fruits[1].name + '' + obj1.fruits[2].price; 

Zusätzlich Vielleicht möchten Sie t o einfach nur eine einzige Zeile benutzen, um Ihre JSON-String zu definieren, Probleme zu vermeiden, wenn es den Bau:

var text = '{"fruits":[{"name":"apple","price":"1000"},{"name":"orange","price":"2000"},{"name":"pine","price":"3000"}]}' 

Beispiel

<body> 
    <center><h2>create object from json string</h2></center> 
    <pre>DEMO</pre> 
    <!-- Required Demo Section --> 
    <div id='demo'></div> 
    <script> 
    // Slightly revised building of JSON collection (to avoid concatenation issues) 
    var text= '{"fruits":[{"name":"apple","price":"1000"},{"name":"orange","price":"2000"},{"name":"pine","price":"3000"}]}'; 
    var obj1= JSON.parse(text); 
    // Use of proper innerHTML property 
    document.getElementById("demo").innerHTML = obj1.fruits[1].name+ ' ' + obj1.fruits[2].price; 
    </script> 
</body> 

Sie können see this example in action here.

0

Fehler ich erkennen konnte:

  1. vergessen #dome Element auf Ihrer Seite
  2. innerHTml sollte innerHTML
  3. text Variable initialisiert wird, korrekt ist nicht hinzuzufügen. Es ist ein Parsingfehler. String-Schlusskurs und plus '+ sollten wie im folgenden Beispiel auf der Zeichenkette zum Schließen stehen.

var text = '{"fruits":[{"name":"apple","price":"1000"},' + 
 
    '{"name":"orange","price":"2000"},' + 
 
    '{"name":"pine","price":"3000"}' + 
 
    ']}'; 
 

 
obj1 = JSON.parse(text); 
 

 
document.getElementById("demo").innerHTML = obj1.fruits[1].name + " " + obj1.fruits[1].price;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<center> 
 
    <h2> create object from json string</h2> 
 
</center> 
 
<div id="demo"></demo>