请问一下 js 如何获取 json 中的某个特定的值?

新手上路,请多包涵
var prim ={"学生证号":[{"text":"31123","hash":"C3B9B7DADC94F7","key":"txt_SqrCard","value":"31123"}]}

请问一下 js 如何获取 prim 中的 text 的值,多谢多谢

阅读 5.2k
3 个回答
var prim ={"学生证号": [{"text":"31123","hash":"C3B9B7DADC94F7","key":"txt_SqrCard","value":"31123"}]};
function findValue(obj, target) {
    var getType = function(arg) {
        typeRe = /^\[object (\w+)\]$/;
        return typeRe.exec(Object.prototype.toString.call(obj))[1];
    };
    var pushStack = function(arr, obj) {
        var type = getType(obj);
        if (type === 'Array' || type === 'Object') {
            Array.prototype.unshift[type === 'Array' ? 'apply' : 'call'](arr, obj);
        }
        return arr;
    };
    var stack = pushStack([], obj);
    var ret = null;
    forEach: while (stack.length) {
        var tmp = stack.shift();
        for (var key in tmp) {
            var val = tmp[key];
            if (key === target) {
                ret = val;
                break forEach;
            } else pushStack(stack, val);
        }
    }
    return ret;
}
console.log(findValue(prim, "text"));

支持ES6的话:

let { "学生证号": [
  {text}
]} = prim;
console.log(text);    // '31123'

先吐槽下数据结构,中文做key?一句话就是数据结构太烂!

clipboard.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题