2016-04-27 7 views
0

Ich habe meine HTML-Arbeit mit Javascript, und die Datei manifest.json gelesen werden.Javascript - Wie jedes JSON-Objekt als Textstring analysieren

Hier ist meine JSON-Datei Code:

{ 
    "name": "Project", 
    "description": "A template project", 
    "icon": "img/icon.svg", 
    "version": "X.X.X.X", 
    "developer": { 
     "name": "Daniell Mesquita", 
     "url": "http://about.me/daniellmesquita" 
    }, 
    "shop_id": "1", 
    "manifest_version": 1, 
    "default_language": "en" 
} 

wir lesen müssen jedes Objekt als Text, in JavaScript Parsing. Beispiel:

<h1>+ name +</h1> 
<h2>+ description +</h2> 
<img src="+ icon +"/> 
<p>+ version +</p> 

Auch, wie kann ich Unterobjekte von "Entwickler" -Objekt lesen?

BEARBEITEN: Validierte json. Danke an @ADreNaLiNe-DJ und Curious Concept's JSON Formater für die Validierung.

+0

Haben Sie versucht, es selbst zu lesen? Teile deine Idee/deinen Code. Wir können Ihnen helfen, den Code zu verbessern –

+0

var name = myJsonObject.name; –

+0

Nachdem Sie den JSON in ein Objekt geparst haben, verwenden Sie 'object.developer.name' – Archer

Antwort

0

Wenn der JSON in einer String-Variablen ist, wandeln Sie ihn in ein Objekt um. Dann können Sie die einzelnen Werte zugreifen:

var obj = JSON.parse(jsonString); 

var name = obj.name; 
var version = obj.version; 
var developerName = obj.developer.name; 

+0

Danke. Ich habe jetzt mit Hilfe validiert. – Plasmmer

+0

Wie kann ich von der lokalen Datei 'manifest.json' laden? Und wie kann ich die Phrasen als + Zeichen + Zeichenfolgen in HTML laden? Danke im Voraus. – Plasmmer

+0

Wo befindet sich manifest.json? In einem Server? –

0

Sie könnte wie folgt tun. Dadurch werden die Objektschlüsselwertpaare abgeglichen, auch wenn Sie Objekte in Ihrer Datenstruktur verschachtelt haben.

var data = { 
 
         "name": "Project", 
 
       "description": "A template project", 
 
         "icon": "img/icon.svg", 
 
        "version": "X.X.X.X", 
 
        "developer": 
 
          { 
 
           "name": "Daniell Mesquita", 
 
           "url": "http://about.me/daniellmesquita" 
 
          }, 
 
        "shop_id": "1", 
 
      "manifest_version": "1", 
 
      "default_language": "en", 
 
      }, 
 
stack = [[],[]]; 
 

 
function getKeyValuePairs(obj,stack) { 
 
    Object.keys(obj).forEach(e => obj[e] instanceof Object ? getKeyValuePairs(obj[e], stack) : (stack[0].push(e), stack[1].push(obj[e]))); 
 
} 
 
getKeyValuePairs(data, stack); 
 

 
document.write("<pre>" + JSON.stringify(stack,null,2) + "</pre>");

+0

Wie kann ich von der lokalen Datei 'manifest.json' laden anstatt inline' var data = {} '? Und wie kann ich die Phrasen als + Zeichen + Zeichenfolgen in HTML laden? Danke im Voraus. – Plasmmer

0

Nun können Sie yourJsonVarName.developer.name yourJsonVarName.developer.url

try this verwenden!

Added

Wenn Ihre externe Datei in Ihrer Domäne ist vielleicht können Sie diese verwenden, um Ihre Daten in JSON-Datei abgerufen werden.

$.getJSON("manifest.json", function(data) { 
     var name = data.developer.name; 
     var url = data.developer.url; 
    }); 
+0

Danke, es funktioniert! Aber ich brauche Zeichenfolgen wie '+ Phrase +' in HTML. Wie kann ich von der lokalen Datei 'manifest.json' laden anstatt' var json = {} '? – Plasmmer

Verwandte Themen