Показать сообщение отдельно
  #6 (permalink)  
Старый 16.07.2015, 02:23
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,134

Сообщение от 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>

Последний раз редактировалось рони, 16.07.2015 в 02:25.
Ответить с цитированием