1

我正在尝试使用以下脚本来遍历嵌套的 JSON 对象。它在 html 中运行良好,但是,我从 Excel VBA ScriptControl 对象调用它。当我这样做时,它会为“$”返回一个“未定义”错误

我假设这是因为 VBA ScriptControl 不允许使用 jQuery(这是真的吗?)

所以......可以帮助将下面的“$ .each()”部分转换为javascript吗?

代码:

function jsonFunction() {
    var jsonObj = {
        Item1: 'This is a test',
        Item2: { Value1: '100', Value2: '200' },
        Item3: { Value1: '101', Value2: '201' },
    };

    var result = '';

    $.each(jsonObj, jsonLoop);

    function jsonLoop(key, value) {
        if (typeof value === 'object') {
            $.each(value, jsonLoop);
        } else {
            result += key + ' : ' + value + ', ';
        }
    } 
    return result;
}
4

1 回答 1

1

您可以创建自己的each功能

function each(obj, cb) {
    for (var key in obj) {
        cb(key, obj[key]);
    }
}

function jsonFunction() {
    var jsonObj = {
        Item1: 'This is a test',
        Item2: { Value1: '100', Value2: '200' },
        Item3: { Value1: '101', Value2: '201' },
    };

    var result = '';

    each(jsonObj, jsonLoop);

    function jsonLoop(key, value) {
        if (typeof value === 'object') {
            each(value, jsonLoop);
        } else {
            result += key + ' : ' + value + ', ';
        }
    } 
    return result;
}
于 2016-09-21T03:03:34.803 回答