Javascript 如何在前端html页面上呈现JSON

Javascript 如何在前端html页面上呈现JSON,javascript,html,Javascript,Html,我试图在HTML页面上显示JSON字符串。JSON字符串如下所示: { email: '111@11.com', username: '1111', roles: {}, array: ['data','data'] }, { email: 'go@1.com', username: 'go', roles: {}, array: [ 'c', 'c' ] } ] &l

我试图在HTML页面上显示JSON字符串。JSON字符串如下所示:

{ 
       email: '111@11.com',
       username: '1111',
       roles: {},
       array: ['data','data'] },
     { 
       email: 'go@1.com',
       username: 'go',
       roles: {},
       array: [ 'c', 'c' ] } ]
<div id="my_id">
    <h3>json.email1</h3>
    <div>
      <div class="content">
        <p>json.array1</p>
      </div>
    </div>
<h3>json.email2</h3>
    <div>
      <div class="content">
        <p>json.array2</p>
      </div>
    </div>
<h3>json.email3</h3>
    <div>
      <div class="content">
        <p>json.array3</p>
      </div>
    </div>     
  </div>
HTML如下所示:

{ 
       email: '111@11.com',
       username: '1111',
       roles: {},
       array: ['data','data'] },
     { 
       email: 'go@1.com',
       username: 'go',
       roles: {},
       array: [ 'c', 'c' ] } ]
<div id="my_id">
    <h3>json.email1</h3>
    <div>
      <div class="content">
        <p>json.array1</p>
      </div>
    </div>
<h3>json.email2</h3>
    <div>
      <div class="content">
        <p>json.array2</p>
      </div>
    </div>
<h3>json.email3</h3>
    <div>
      <div class="content">
        <p>json.array3</p>
      </div>
    </div>     
  </div>
HTML必须自动添加,以确保所有JSON元素都填充在HTML标记中。最简单的方法是什么?有人能帮我吗

HTML:

HTML:

   <div class="people">
    <h3>Foe</h3>
    <div>
      <div class="content">
        <p>This example simply sets a class attribute to the details and let's an
        external stylesheet toggle the collapsed state.</p>
      </div>
    </div>
    </div>   

上述代码不显示折叠结构。当整个东西被包装到div class=people中时,它就不能正常工作,不会显示折叠。

您可以使用angular.js,这是一个制作此类东西的库。这很简单:

<html ng-app="myapp">
<body ng-controller="mycontroller">
    <div ng-repeat="user in users">
        <h3>{{ user.email }}</h3>
        <p>{{ user.username }}</p>
        <div ng-repeat="data in array">
             {{ data }}
        </div>
   </div>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.21/angular.min.js"></script>
<script>
     var app = angular.module('myapp', []);
     app.controller = ('mycontroller', function($scope){
           $scope.users = {
                //your data here
           }
     });
</script>
<body>
</html>

不久前,我设计了所谓的可重复jQuery插件:

因此,如果您有如下模板html片段:

<ul id="people">
    <li><a href="mailto:{{this.email}}">{{this.name}}</a> <b if="this.age > 18">18+</b> </li> 
    <li>No data available</li>
</ul>
然后,要根据该数据呈现列表,您只需执行以下操作:

var list = $("ul#people").repeatable(); // declaring the repeatable
    list.value = data; // that's data population, sic!

以下是我当前用于列表中可供选择项的。

。将这两个组件集成起来容易吗?@user2578666我看不出任何问题,它们应该可以一起工作。当我将整个结构包装到div class=people中时,它不会显示可折叠结构。你有什么想法吗?为什么这是标记的主干?删除标记。我在这个应用程序中使用了主干网,但我认为问题与此无关。为什么它被标记为jade?我看不出你在哪里初始化了可折叠的功能。它应该看起来像var list=$div.people.repeatable;list.value=数据$div.people.collapse{…选项…};为了清楚起见,我没有把它放在帖子里。如果您只是下载库并添加一个额外的div来包装它,则折叠将不起作用。另一个没有div的函数似乎起作用