【问题标题】:How to show JSON as formatted view in html如何在 html 中将 JSON 显示为格式化视图
【发布时间】:2015-03-01 11:43:21
【问题描述】:

我需要在我的 html 页面中查看 JSON 作为格式化视图。 JSON 来自数据库。我需要在格式化视图中显示它。

就像

 {
"crews": [{
    "items": [
    {
        "year"      :   "2013",
        "boat"      :   "Blue",
        "position"  :   "1",
        "name"      :   "Patrick Close",
        "college"   :   "Pembroke",
        "weight"    :   "14st 2lbs"
    }, {
        "year"      :   "2013",
        "boat"      :   "Blue",
        "position"  :   "2",
        "name"      :   "Geordie Macleod",
        "college"   :   "Christ Church",
        "weight"    :   "13st 10lbs"
    }]
}] 
}

有人有什么想法或建议吗?或任何可能有帮助的资源。

已编辑:我想创建一个 JSON 解析器。用户输入不同的json,可以在格式化视图中查看。

【问题讨论】:

  • JSON 美化 + <pre> 标签?
  • export function jsonToHtml(json) { return "<pre>" + JSON.stringify(json, null, 4) + "</pre>"; }

标签: javascript html json date viewer


【解决方案1】:

试试 JSON.stringify(data),它是一个 Javascript 函数。希望对您有所帮助。

参考:Detail Explaination

如果您使用的是 PHP,请使用 json_encode

参考:json_encode manual

【讨论】:

  • 我在java中使用angular js和服务器端。
  • 在这种情况下,我建议使用 JSON.stringify()。
  • 如果您的问题已解决,请将此答案标记为正确。
  • 您的回答不是解决方案...您的回答只是一个建议。如果它工作正常,我会标记为答案。
【解决方案2】:

由于您使用的是 angular-js,您可以简单地从控制器加载您的 JSON 提要,然后使用 ng-repeat 函数将项目迭代到您的视图中页。下面是您的 HTML 视图的外观示例,您可能需要根据需要设置样式和构建块:

<span>items:</span>
<span>[</span>
<br/>  
<div class="item" ng-repeat="item in items">
    <span>{</span><br/>
    <span class="field">year : {{item.year}}</span><br/>
    <span class="field">boat : {{item.boat}}</span><br/>
    <span class="field">position : {{item.position}}</span><br/>
    <span>}</span>
</div>

您可以在此JSFiddle 中找到工作示例。

【讨论】:

  • 你在 html 中使用过 item.year, item.boat。但我需要动态。 JSON 可以在 DB 中修改。那么它应该在 html 中查看。
【解决方案3】:

首先:您的远程 JSON 无效:它缺少 crews 的结束括号。

应该是这样的:

{
"crews": [{
    "items": [
    {
        "year"      :   "2013",
        "boat"      :   "Blue",
        "position"  :   "1",
        "name"      :   "Patrick Close",
        "college"   :   "Pembroke",
        "weight"    :   "14st 2lbs"
    }, {
        "year"      :   "2013",
        "boat"      :   "Blue",
        "position"  :   "2",
        "name"      :   "Geordie Macleod",
        "college"   :   "Christ Church",
        "weight"    :   "13st 10lbs"
    }]
}] // Missing this bracket
}

你没有提到你的 JSON 是否是远程的。我假设不是,所以我将在此示例代码中使用带有 eval 函数的本地 JavaScript var。

<script type="text/javascript">

var content = {
"crews": [{
    "items": [
    {
        "year"      :   "2013",
        "boat"      :   "Blue",
        "position"  :   "1",
        "name"      :   "Patrick Close",
        "college"   :   "Pembroke",
        "weight"    :   "14st 2lbs"
    }, {
        "year"      :   "2013",
        "boat"      :   "Blue",
        "position"  :   "2",
        "name"      :   "Geordie Macleod",
        "college"   :   "Christ Church",
        "weight"    :   "13st 10lbs"
    }]
}]
};

var json = eval(content);

for (c in json.crews) {
    var crew = json.crews[c];
    for (i in crew.items) {
        var item = crew.items[i];
        console.log(item.year);
        console.log(item.boat);
        console.log(item.position);
        console.log(item.name);
    }
}

</script>

我用console.log输出,所以你只有打开浏览器控制台才能看到数据:

【讨论】:

  • 首先,我想解析任何格式的json。它来自数据库。您的代码已针对特定格式固定。更具体地说,我想创建一个 json 解析器。
  • 当然,for 循环内的内容应该根据您的需要进行更改。这只是一个样本!
  • for (c in json.crews) { var crowd = json.crews[c];对于(船员中的我){ var item = cramp.items [i]; console.log(item.year); console.log(item.boat);控制台.log(item.position);控制台.log(item.name); } } 这部分适用于所有 JSON 吗?
猜你喜欢
  • 1970-01-01
  • 2019-05-19
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 2020-03-06
  • 2015-09-03
  • 2016-12-13
  • 2013-10-25
相关资源
最近更新 更多