Сообщение от laimas
|
Если такие данные будут, то или условностями все обрастет
|
при нормальных данных строка 43 будет в трое короче
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script>
$(function(){
var jsonTree = {
"firstName": "Иван",
"lastName": "Иванов",
"address": {
"streetAddress": "Московское ш., 101, кв.101",
"city": "Ленинград",
"postalCode": 101101
},
"address2": [
"Адрес",
{
"streetAddress2": "Московское ш., 101, кв.101",
"city2": "Ленинград",
"adress3": 101101
}
],
"phoneNumbers": [
"812 123-1234",
"916 123-4567"
]
};
function fn(b) {
var d = $("<ul>");
Object.keys(b).forEach(function(a) {
var c = $("<li/>"),
e = $("<input/>", {
type: "checkbox",
name: a
});
"string" === $.type(b[a]) || "number" === $.type(b[a]) ? c.append(b[a]) : "address2" === a ? c.append(b[a][0]).append(fn(b[a][1])) : c.append(fn(b[a]));
isNaN(+a) && c.prepend(e);
c.appendTo(d)
});
return d
};
$("body").append(fn(jsonTree))
});
</script>
</head>
<body>
</body>
</html>