1

是否可以将JSON的遍历路径存储在第一级以外的变量中?

在变量中定义 JSON 遍历路径。

var jsonPathLink = 'sequenceId'; 
var jsonPathText = 'answer.body';

jQuery AJAX 调用。(我删除了所有不必要的设置,但如果您想要包含更多代码,请告诉我。)

$.ajax({
  success: function(data){
    if(data.length > 0){
      for(x in data){
        console.log(data[x][jsonPathLink]); // This works.

        console.log(data[x][jsonPathText]);  // This does not work.
        console.log(data[x] + jsonPathText); // This also does not work.
      }
    }
  }
});
4

1 回答 1

3

您可以编写一个 traverseObject 函数,如下所示:

function traverseObj(obj, path) {

    var arr = path.split('.'),
        len = arr.length,
        i = 0,
        ret;

    for ( ; i<len; i+=1 ) {

        // on the first iteration, the passed object
        // is cached in the ret-variable.
        ret = !i
            ? obj[arr[i]]
            : ret[arr[i]];

    }

    return ret;

}

路径的单个元素通过迭代它们应用于传递的 obj。结果被缓存并返回。

示例:http: //jsfiddle.net/k8GWz/

于 2012-06-25T19:23:35.473 回答