2016-04-27 38 views
0

我有我的javascript和javascript,以及要讀取的文件manifest.json。Javascript - 如何將每個json對象解析爲文本字符串

這裏是我的JSON文件的代碼:

{ 
    "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" 
} 

我需要閱讀每一個對象作爲文本,在JavaScript解析。例如:

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

太,我該如何讀取「開發人員」對象的子對象?

編輯:已驗證的json。感謝@ADreNaLiNe-DJCurious Concept's JSON Formater幫助驗證。

+0

您是否試過自己讀過它?分享你的想法/代碼。我們可以幫助你改進,而不是代碼 –

+0

var name = myJsonObject.name; –

+0

將JSON解析爲一個對象後,使用'object.developer.name' – Archer

回答

0

如果json在一個String變量中,將它轉換爲一個對象。然後你就可以訪問單值:

var obj = JSON.parse(jsonString); 

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

+0

謝謝。我現在已經通過幫助進行了驗證。 – Plasmmer

+0

如何從本地'manifest.json'文件加載?我怎樣才能在HTML中加載短語作爲'+短語+'字符串?提前致謝。 – Plasmmer

+0

manifest.json位於何處?在服務器? –

0

你可以做如下所示。即使您的數據結構中有嵌套對象,它也會使對象鍵值對變平。

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

如何從本地'manifest.json'文件加載而不是使用inline'var data = {}'?我怎樣才能在HTML中加載短語作爲'+短語+'字符串?提前致謝。 – Plasmmer

0

那麼你可以使用 yourJsonVarName.developer.name yourJsonVarName.developer.url

try this

新增

如果外部文件在您的域名,也許你可以使用這個檢索JSON文件中的數據。

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

謝謝,它的工作原理!但是我需要在HTML中使用像'+ phrase +'這樣的字符串。我如何從本地'manifest.json'文件加載而不是使用'var json = {}'? – Plasmmer

相關問題