遍历JSON对象javascript

我很难找到一种以我想要的方式遍历此JSON对象的方法。我在这里只使用Javascript。


首先,这是对象


{

"dialog":

{

    "dialog_trunk_1":{

        "message": "This is just a JSON Test"

    },


    "dialog_trunk_2":{

        "message": "and a test of the second message"

    },


    "dialog_trunk_3":

    {

        "message": "This is a test of a bit longer text. Hopefully this will at the very least create 3 lines and trigger us to go on to another box. So we can test multi-box functionality, too."

    }

}

}

现在,我只是在尝试基本方法来访问此对象上的每个dialog_trunk。理想情况下,我想遍历该对象,并为每个主干显示其message值。


我已经尝试过使用for循环动态地生成dialog_trunk的名称/编号,但是我无法使用对象名称的字符串来访问该对象,因此我不确定从这里开始。


慕容708150
浏览 413回答 3
3回答

拉丁的传说

for..in为此使用循环。确保检查对象是否拥有属性,或者是否也显示所有继承的属性。一个例子是这样的:var obj = {a: 1, b: 2};for (var key in obj) {  if (obj.hasOwnProperty(key)) {    var val = obj[key];    console.log(val);  }}或者,如果您需要递归来遍历所有属性:var obj = {a: 1, b: 2, c: {a: 1, b: 2}};function walk(obj) {  for (var key in obj) {    if (obj.hasOwnProperty(key)) {      var val = obj[key];      console.log(val);      walk(val);    }  }}walk(obj);

开心每一天1111

这是我的递归方法:function visit(object) {    if (isIterable(object)) {        forEachIn(object, function (accessor, child) {            visit(child);        });    }    else {        var value = object;        console.log(value);    }}function forEachIn(iterable, functionRef) {    for (var accessor in iterable) {        functionRef(accessor, iterable[accessor]);    }}function isIterable(element) {    return isArray(element) || isObject(element);}function isArray(element) {    return element.constructor == Array;}function isObject(element) {    return element.constructor == Object;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript