使用Javascript查找并更新嵌套JSON数组和对象中的所有键值

使用Javascript查找并更新嵌套JSON数组和对象中的所有键值,javascript,angularjs,json,node.js,nested,Javascript,Angularjs,Json,Node.js,Nested,下面是数组和对象的嵌套JSON数据 我需要用javascript、NodeJS或AngularJS将字符串中的所有键值从英语更新为西班牙语 { "firstrootkey" : [ //Array of 6 objects { //1st object "key1" : "valueinstring", "key2" : randomnumbers },..... ], "secondrootkey" :

下面是数组和对象的嵌套JSON数据

我需要用javascript、NodeJS或AngularJS将字符串中的所有键值从英语更新为西班牙语

    {
      "firstrootkey" : [ //Array of 6 objects 
      {  //1st object
        "key1" : "valueinstring",
        "key2" : randomnumbers
      },..... ],
      "secondrootkey" : { //having 7 objects 
        "One" : [ { //each object having array of n objects 
          "name" : "valueinstring",
          "id" : randomnumbers
        }, ......],
        "two two" : [ { // array of m objects
          "keya" : "valueinstring",
          "keyb" : randomnumbers
        },.......],
      .
      .
      .

      },
      "third root key" : { //having n objects 
        "sdfdsfsfs" : [ { //each object having array of n objects
          "keyc" : "valueinstring",
          "keyhuh" : 858556
          "hgjhgj" : 6789
        },.... ],
        .
        .
        .
        .
        .
        }
    }
我尝试了许多方法,但没有一种有效…
方法之一

   for (var rootKey in jsonEnglish) {
    var rootValue = jsonEnglish[rootKey];
      if (rootValue.isArray) { // function iterate Array objects         
        //loop each array
          // if every array is object -- function iterate object 
            // find value in object 
              //if value not array and object 
                 // then pass value to translator 
                  //and update the value with translated value
              //else if its object
                  //      

给出一些方法的说明。好的,从验证JSON开始

然后在javascript中,您可以访问json并将其与XMLHttpRequest()一起使用

第二个JSON对象每组括号表示数据库/列表中的一行

由于您使用的是foreach循环,为了简单起见,我将它设为一个对象

{
"foreachloopobject": [{
    "firstrootkey": [{
        "firstName": "Shane",
        "lastName": "Burton",
        "id": [
            1, 2, 3, 4, 5, 6, 7, 8
        ],
        "credits": "24"
    }],
    "secondrootkey": [{
        "One": [{
            "firstName": "Shane",
            "lastName": "Burton",
            "id": [
                1, 2, 3, 4, 5, 6, 7, 8
            ],
            "credits": "24"
        }]
    }],
    "firstrootkey": [{
        "firstName": "Shane",
        "lastName": "Burton",
        "id": [
            1, 2, 3, 4, 5, 6, 7, 8
        ],
        "credits": "24"
    }],
    "secondrootkey": [{
        "One": [{
            "firstName": "Shane",
            "lastName": "Burton",
            "id": [
                1, 2, 3, 4, 5, 6, 7, 8
            ],
            "credits": "24"
        }]
    }]
}]
}

您的方法在哪些方面不起作用?这听起来很有希望。@Shan418,请添加一个Fiddle/Plnkr代码。似乎您不知道对象的深度。也许有人会帮你。是的,我不知道JSON的结构和深度。它因URI而异。我还将尝试递归。我的JSON数据中的点表示数组或对象的出现。我不能在代码中使用任何硬编码值,如JSON_数组。secondrootkey[0]。one[0]。name。这不是点,而是使用{而不是[.第7行没有点吗?请确保在jsonlint中测试它。它会告诉您语法是否正确。从您向我展示的内容来看,Json不起作用。我将编辑我的答案以获得一些Json。您从哪里提取数据?您能用jsonlint.com验证它吗?这里的示例是我从mysql服务器提取数据并创建Json对象。它不需要硬编码,只需要获取对象。
{
    "firstrootkey": [{
    "firstName": "Shane",
    "lastName": "Burton",
    "id": [
        1, 2, 3, 4, 5, 6, 7, 8
    ],
    "credits": "24"
}],
"secondrootkey": [{
    "One": [{
        "firstName": "Shane",
        "lastName": "Burton",
        "id": [
            1, 2, 3, 4, 5, 6, 7, 8
        ],
        "credits": "24"
    }]
}]
}
{
"foreachloopobject": [{
    "firstrootkey": [{
        "firstName": "Shane",
        "lastName": "Burton",
        "id": [
            1, 2, 3, 4, 5, 6, 7, 8
        ],
        "credits": "24"
    }],
    "secondrootkey": [{
        "One": [{
            "firstName": "Shane",
            "lastName": "Burton",
            "id": [
                1, 2, 3, 4, 5, 6, 7, 8
            ],
            "credits": "24"
        }]
    }],
    "firstrootkey": [{
        "firstName": "Shane",
        "lastName": "Burton",
        "id": [
            1, 2, 3, 4, 5, 6, 7, 8
        ],
        "credits": "24"
    }],
    "secondrootkey": [{
        "One": [{
            "firstName": "Shane",
            "lastName": "Burton",
            "id": [
                1, 2, 3, 4, 5, 6, 7, 8
            ],
            "credits": "24"
        }]
    }]
}]
}