2016-04-27 73 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

相关问题