2016-04-07 2 views
0

У меня есть ниже вложенные JSON данных массивов и объектыНайти и обновить все значения ключей в вложенной JSON Массивов и объектах с помощью Javascript

мне нужно обновить все значения ключей в строке с английского на испанский язык в 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 
     },.... ], 
     . 
     . 
     . 
     . 
     . 
     } 
    } 

Я пытался somany методы, но ни один из них работает ...
один из подхода

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 
        //  

Дайте несколько направлений подойти

+2

Каким образом ваш подход не работает? Мне кажется многообещающим. – kazenorin

+0

@ Shan418, добавьте Fiddle/Plnkr своего кода. –

+0

Похоже, вы не знаете глубины своих объектов. Возможно, некоторые [рекурсии] (https://en.wikipedia.org/wiki/Recursion_ (computer_science)) помогут вам. –

ответ

0

Хорошо, начните с проверки вашего JSON здесь http://jsonlint.com/

Затем в JavaScript вы можете получить доступ к JSON и использовать его с XMLHttpRequest()

var xmlhttp = new XMLHttpRequest(); 
     var url = "yourdata.json"; 

     xmlhttp.onreadystatechange = function() { 
      if (xmlhttp.readyState == 4 && xmlhttp.status == 200) { 
       var json_array = JSON.parse(xmlhttp.responseText);      
       parseJson(json_array); 
     } 

    xmlhttp.open("GET", url, true); 
    xmlhttp.send(); 

    json_data += "<p>Variable Access through array structure: " + json_array.firstrootkey[0].key1+ "</p>"; 
    json_data += "<p>Access Array inside array item: " + json_array.secondrootkey[0].one[0].name + "</p>"; 

    document.getElementById("display_json").innerHTML = json_data; 

Кроме того, есть синтаксис ошибка в строке 7. Кроме того, для проверки кода вам нужен рабочий веб-сервер. Я предпочитаю appserv.

Вот некоторые JSON, что является правильным и проверен на JSONlint.com

{ 
    "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" 
    }] 
}] 
} 

Второй JSON ОБЪЕКТА Каждый набор скобок представляет собой одну строку в базе данных/список

Поскольку вы используете Еогеасп Я бы сделал это одним объектом для простоты.

{ 
"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" 
     }] 
    }] 
}] 
} 
+0

Точки в моих данных JSON представляют собой появление любого массива или объектов – Shan418

+0

Я не могу использовать какое-либо жестко заданное значение в коде, например json_array.secondrootkey [0] .one [0] .name. – Shan418

+0

Это не точки, это факт, что вы используете {вместо [. В строке 7 нет точек? Просто убедитесь, что проверили его в jsonlint. Он скажет вам, правильно ли синтаксис. Из того, что ты показываешь мне, что Джон не собирается работать. Я отредактирую свой ответ, чтобы иметь json. –

Смежные вопросы