我的html使用javascript,并且要读取文件manifest.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-DJ和Curious Concept's JSON Formater帮助验证。
答案 0 :(得分:0)
如果json在String变量中,则将其转换为对象。然后您可以访问单个值:
var obj = JSON.parse(jsonString);
var name = obj.name;
var version = obj.version;
var developerName = obj.developer.name;
答案 1 :(得分: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>");
&#13;
答案 2 :(得分:0)
你可以使用
yourJsonVarName.developer.name
yourJsonVarName.developer.url
<强>加强>
如果您的外部文件位于您的域中,您可以使用它来检索json文件中的数据。
$.getJSON( "manifest.json", function( data ) {
var name = data.developer.name;
var url = data.developer.url;
});