我需要帮助与显示JSON数据在一个页面上,如可展开/可折叠的列表。
下面是我用Python从XML转换而来的一个有效JSON:
JSON Data
我用这个来展示它
<!DOCTYPE HTML>
<head>
<title>JSON Tree View</title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/jquery-ui.min.js" type="text/javascript"></script>
</head>
<script>
function json_tree(object){
var json="<ul>";
for(prop in object){
var value = object[prop];
switch (typeof(value)){
case "object":
var token = Math.random().toString(36).substr(2,16);
json += "<li><a class='label' href='#"+token+"' data-toggle='collapse'>"+prop+"="+value+"</a><div id='"+token+"' class='collapse'>"+json_tree(value)+"</div></li>";
break;
default:
json += "<li>"+prop+"="+value+"</li>";
}
}
return json+"</ul>";
}
</script>
<body style="margin: 40px;">
<h3>Paste JSON Into The Textarea Below and Click 'Build Tree'</h3>
<textarea id="json" style="width: 100%;min-height:300px;">
</textarea>
<button onclick="$('#output').html(json_tree(JSON.parse($('#json').val())));">Build Tree</button>
<div id="output">
</div>
</body>
</html>
这是我得到的:
Image
我需要帮助“过滤”(或与上级节点合并)那些“0”和“1”,以及-如何只显示属性的值而不显示名称(或者如果你有一些更好的想法,我如何可以dusplay这个列表)?
4条答案
按热度按时间btqmn9zl1#
a美观、紧凑、可折叠的树视图
pgrabovets'
json-view
是惊人的干净和良好的设计。checkout the demo
uttx8gqw2#
如果可以考虑使用JS库,请考虑使用JSON Formatter或Render JSON。这两个库都提供了主题、最大深度和排序等配置选项。要使用Render JSON以可折叠的形式显示简单的JSON字符串,可以使用
cld4siwp3#
有些问题的链接已经无法访问了。我假设您正在寻找如何制作一个可折叠的JSON视图。
TL;DR
您可以跳至完整代码。
代码很短(200行↓,包括JSDoc、注解、测试代码。)
启发您如何解决问题。
这道题在某些技巧上很像如何制作目录.(TOC)
1.首先,JSON数据就像一个对象,我们所要做的就是为每个项添加更多的属性(key、depth、children...)。
1.完成这些操作后,剩下的就是render,下面是用于呈现的伪代码。
完整代码
两个CSS都不是必需。
j0pj023g4#
我用卡森回复,它的工作就像魅力,但空对象的问题,因为woto说。改变脚本。