Javascript - 如何将每个json对象解析为文本字符串

时间:2016-04-27 08:22:13

标签: javascript arrays json

我的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-DJCurious Concept's JSON Formater帮助验证。

3 个答案:

答案 0 :(得分:0)

如果json在String变量中,则将其转换为对象。然后您可以访问单个值:

var obj = JSON.parse(jsonString);

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

答案 1 :(得分:0)

您可能会喜欢以下内容。即使您的数据结构中有嵌套对象,它也会使对象键值对变平。

&#13;
&#13;
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;
&#13;
&#13;

答案 2 :(得分: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;
    });