根据其他键值更改json对象中的值

用户名

我有一个如下的json

[{
    "name": "abc",
    "Path": "i.abc",
    "count": 5347,
    "subFolders": []
},
{
    "name": "cde",
    "Path": "i.cde",
    "count": 0,
    "subFolders": [{
        "name": "efg",
        "Path": "",
        "count": 0,
        "subFolders": []
    },
    {
        "name": "hij",
        "Path": "i.hij",
        "count": 1,
        "subFolders": []
    }]
}]

我想基于“路径”(其唯一)值更改“计数”值。例如,我想像这样将路径“ i.hij”的count更改为2。以下是我尝试过的代码。

var json = "above json";
  for (i=0; i < json.length; i++) {
      this.updateJson(json[i], path, count);
  }

  updateJson: function(json, path, count) {

    if (json.path == path) {
        json.count = count;
        return json;
    } 

    if (json.subFolders != null && json.subFolders.length > 0) {

      for(j=0; j < json.subFolders.length; j++) {

          this.updateJson(json.subFolders[j], path, count);
      }
    }
  }

如何获取具有修改后值的整个json?

丹尼斯·塞古雷(DenysSéguret)

您的代码中有一些问题,主要是您感到困惑,Path并且path(JavaScript区分大小写),并且您缺少了var关键字for(这是很微妙的,而且非常危险),但是您离目标并不远。

这是一个固定功能:

var obj = [{
    "name": "abc",
    "Path": "i.abc",
    "count": 5347,
    "subFolders": []
},
{
    "name": "cde",
    "Path": "i.cde",
    "count": 0,
    "subFolders": [{
        "name": "efg",
        "Path": "",
        "count": 0,
        "subFolders": []
    },
    {
        "name": "hij",
        "Path": "i.hij",
        "count": 1,
        "subFolders": []
    }]
}];

function upd(o, path, count) {
  if (o.Path == path) {
        o.count = count;
  } else {
    var arr;
    if (Array.isArray(o)) arr = o;
    else if (o.subFolders) arr = o.subFolders;
    else return;
    for(var j=0; j < arr.length; j++) {
        upd(arr[j], path, count);
    }
  }
}
upd(obj, "i.hij", 3);
console.log(obj);

我还更改了变量名称,以删除对JSON的所有引用,因为这里没有JSON。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP-Cookie值更改为其他值

来自分类Dev

根据其他列中的值更改DataGridTextColumn单元格上的字符串格式,并使值可排序

来自分类Dev

根据javascript的值更改值

来自分类Dev

如何使用jquery捕获td元素中的值,并根据捕获的td的值更改其他td元素的背景色?

来自分类Dev

复制并粘贴新表中的行,并根据其他单元格值更改单元格值(月)

来自分类Dev

用相同的值更改数组中的其他元素

来自分类Dev

根据列名称,ID号和其他数据框中的键值替换数据框中的值

来自分类Dev

MySQL过程根据其他表中的值更新表

来自分类Dev

如何根据数据框中的其他列值更改列值?

来自分类Dev

根据其他列表选择的值更新下拉列表中的选择的值

来自分类Dev

根据其他两个列的值更改R中的列的值

来自分类Dev

Angular:如何根据键值更改值

来自分类Dev

使用mutate()和cross()根据其他列中的值更改几列的值

来自分类Dev

根据其他单选按钮的值更改单选按钮

来自分类Dev

如何根据r中的其他值更改数据框中的值?

来自分类Dev

用相同的值更改数组中的其他元素

来自分类Dev

根据Spark中的其他列值更新列中的值

来自分类Dev

尝试根据空手道API测试框架中其他键的值为单个值过滤json对象

来自分类Dev

Powershell根据其他键值更新xml键值

来自分类Dev

根据键值显示JSON文件中的值

来自分类Dev

如何使用jquery捕获td元素中的值,并根据捕获的td的值更改其他td元素的背景色?

来自分类Dev

如何在Excel中制作一个单元格以根据其他单元格的值更改颜色?

来自分类Dev

根据其他列中的值更新单元格值

来自分类Dev

SQL-根据相同组和不同行中的其他列值更改列值

来自分类Dev

根据其他 TextView 更改 TextView 值

来自分类Dev

根据其他表中的值更新表

来自分类Dev

如何根据每个 trackBar 值更改时间跨度小时分秒而不重置其他值?

来自分类Dev

根据其他 CSS 值更改字体系列

来自分类Dev

如何根据R中其他列中的值更改更改列元素

Related 相关文章

  1. 1

    PHP-Cookie值更改为其他值

  2. 2

    根据其他列中的值更改DataGridTextColumn单元格上的字符串格式,并使值可排序

  3. 3

    根据javascript的值更改值

  4. 4

    如何使用jquery捕获td元素中的值,并根据捕获的td的值更改其他td元素的背景色?

  5. 5

    复制并粘贴新表中的行,并根据其他单元格值更改单元格值(月)

  6. 6

    用相同的值更改数组中的其他元素

  7. 7

    根据列名称,ID号和其他数据框中的键值替换数据框中的值

  8. 8

    MySQL过程根据其他表中的值更新表

  9. 9

    如何根据数据框中的其他列值更改列值?

  10. 10

    根据其他列表选择的值更新下拉列表中的选择的值

  11. 11

    根据其他两个列的值更改R中的列的值

  12. 12

    Angular:如何根据键值更改值

  13. 13

    使用mutate()和cross()根据其他列中的值更改几列的值

  14. 14

    根据其他单选按钮的值更改单选按钮

  15. 15

    如何根据r中的其他值更改数据框中的值?

  16. 16

    用相同的值更改数组中的其他元素

  17. 17

    根据Spark中的其他列值更新列中的值

  18. 18

    尝试根据空手道API测试框架中其他键的值为单个值过滤json对象

  19. 19

    Powershell根据其他键值更新xml键值

  20. 20

    根据键值显示JSON文件中的值

  21. 21

    如何使用jquery捕获td元素中的值,并根据捕获的td的值更改其他td元素的背景色?

  22. 22

    如何在Excel中制作一个单元格以根据其他单元格的值更改颜色?

  23. 23

    根据其他列中的值更新单元格值

  24. 24

    SQL-根据相同组和不同行中的其他列值更改列值

  25. 25

    根据其他 TextView 更改 TextView 值

  26. 26

    根据其他表中的值更新表

  27. 27

    如何根据每个 trackBar 值更改时间跨度小时分秒而不重置其他值?

  28. 28

    根据其他 CSS 值更改字体系列

  29. 29

    如何根据R中其他列中的值更改更改列元素

热门标签

归档