2014-01-24 3 views
0

Мне нужна помощь относительно обхода каждого элемента в следующем JSON и получить как ключ, так и значение и напечатать его как неупорядоченный список.Обход объекта Javascript

var dataSource = ({ 
       "Items": ({ 
        "Deserts": ({}), 
        "Veg": ({ 
         "VegPulao": "Veg Pulao", 
         "PalakPaneer": "Palak Paneer", 
         "PaneerButterMasala": "Paneer Butter Masala" 
        }), 

        "Chicken": ({ 
         "Tandoori": "Tandoori special" 
        }), 
        "Hot drinks": ({ 
         "Coffe": ({ "Hot": "Hot Coffe", "Medium": "Medium", "Others": ({ "Iris": "Iris Coffe", "Capuccino": "Capuccino" }) }), 
         "Tea": ({"Red": "Red Tea", "Black": "Black Tea"}), 
         "BadamMilk": "Hot Badam Milk", 
         "Bornvita": "Hot Bornvita", 
         "Milk": "Hot Milk" 
        }), 
        "Juice": ({ 
         "Mango": "Mango", 
         "Berry": "Berry", 
         "Grapes": "Grapes", 
         "Wine": ({ 
          "Rose": "Rose", 
          "Red wine": "Red", 
          "Apple": "Apple", 
          "Hard drinks": ({ 
           "Royal challenge": "Royal challenge", 
           "Blender's Pride": "Blender's Pride" 
          }) 
         }) 
        }) 

       }) 
      }); 
+0

Что вы попробовать для достижения цели ?? Пожалуйста, вставьте свой код также – Jalpesh

+0

и [Как перечислять свойства объекта javascript?] (Http://stackoverflow.com/q/85992/218196) –

+0

Я хочу распечатать все значения и ключ в этом JSON внутри элемент div. поэтому, пытаясь понять это. Sir Нужна помощь – aliparevez20

ответ

1

Непонятно, в какой форме вы хотите, но вот способ прохождения вашей структуры данных и генерации некоторого отступов. Кроме того, круглые скобки не нужны в определении данных (я удалил их, чтобы упростить чтение данных).

function output(str, level) { 
    var obj = document.getElementById("output"); 
    var div = document.createElement("div"); 
    var node = document.createTextNode(str); 
    div.style.marginLeft = (level * 20) + "px"; 
    div.appendChild(node); 
    obj.appendChild(div); 
} 

function traverseObject(obj, level) { 
    for (var prop in obj) { 
     if (typeof obj[prop] === "object") { 
      output(prop, level); 
      traverseObject(obj[prop], level + 1); 
     } else { 
      output(prop + ": " + obj[prop], level); 
     } 
    } 
} 

traverseObject(dataSource, 0); 

Работа демо: http://jsfiddle.net/jfriend00/6kAn3/

+1

Спасибо большое, сэр, это полезный код. Могу ли я получить ваш адрес электронной почты, я хочу быть вашим другом – aliparevez20

+0

Это идеальный код, благодаря jfriend00. Случай закрыт – aliparevez20

+1

@ user3067443 - Поскольку похоже, что вы можете быть новичком в StackOverflow, знаете ли вы, что на StackOverflow, если вы получите хороший ответ, вы должны выбрать «лучший ответ», нажав на галочку слева ответа? Это говорит сообществу, что на ваш вопрос был дан ответ, вознаграждает того человека, который предоставил ответ, и получает некоторые очки репутации за правильную процедуру. – jfriend00