javascript - 如何使用数据 ['file.file' 访问 JSON]?

标签 javascript json

我可以使用 var x = data.file.file; 查询我的数据但是,我将 file.file 作为字符串,并且 data['file.file'] 失败。有没有办法做到这一点,还是我需要拆分字符串并递归地走进?

最佳答案

如果不诉诸使用 eval(你绝对应该避免),你必须分割字符串。像这样的东西应该可以正常工作:

var data = {
  file: {
    file: 'YAY'
  }
};

getProp(data, 'file.file'); // "YAY"
setProp(data, 'file.newprop.blop', 7); // false
setProp(data, 'file.newprop', {}); // true
setProp(data, 'file.newprop.blop', 7); // true
console.log(data); // {file: {file: "YAY", newprop: {blop: 7}}}

function getProp(obj, path){
  var parts = path.split('.'), u, i;
  for(i = 0; i < parts.length; i++){
    obj = obj[parts[i]];
    if(obj === u) return u;
  }
  return obj;
}

function setProp(obj, path, newValue){
  var parts = path.split('.'), u, i;
  for(i = 0; i < parts.length - 1; i++){
    obj = obj[parts[i]];
    if(obj === u) return false;
  }
  obj[parts[i]] = newValue;
  return true;
}

关于javascript - 如何使用数据 ['file.file' 访问 JSON]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20103476/

相关文章:

java - Json 到 kotlin 数据类

python - 在这种情况下提取数据最有效的方法是什么?

javascript - toJSON() 和 JSON.Stringify() 之间的区别

javascript - JSON 和 Jquery : Create nested JSON from nested list elements

php - 如何在javascript中正确使用引号

javascript - jQuery 验证输入类型复选框值

java - Json反序列化器可以在java中的不同类中工作

javascript - 代码看起来不错,但是表单提交没有将 <canvas> 发布到 php

javascript - 内联 Ckeditor : All buttons are disabled

javascript - 具有单值和 AngularJs $http json 处理的 WebApi 方法