2015-11-11 4 views
0

Пожалуйста, ответьте мне, как например Select кодКак редактировать локальный файл JSON с JavaScript

  1. Я хочу добавить значения в массив локального JSON файла (член вставки в формате JSON)
  2. элемент также заменить мой элемент, как type, name ... в формате JSON (член обновления в формате JSON)
  3. удаление номер строки, где id="1" и email="[email protected]" (удалить memebr в формате JSON)

JSON файл: report.json

var amir='{"reports":[' + 
    '{"id": "1","type": "admin","name": "amir","email": "[email protected]","password": "123"},' + 
    '{"id": "2","type": "member","name": "kevin","email": "[email protected]","password": "1234"}]}'; 

пример select код проверки регистра администратора:

var obj = JSON.parse(amir); 
for(c = 0; c <= obj.reports.length - 1; c++) { 
    type = obj.reports[c].type.toString(); 
    if (type == "admin") { 
     active = 1; 
    } 

    if (c == obj.reports.length - 1) { 
     if (active == 1) 
      alert("Yes"); 
     else 
      alert("No"); 
    } 
} 
+0

как вы включаете файл JSON в коде? что такое метод включения? – murrometz

+1

Javascript в браузере не имеет прав для редактирования файлов на диске. – Steve

+0

Правильно. Я думаю, вы должны написать php-файл для манипулирования вами json. (Используйте функции json_decode, json_encode.) Тогда говорите с ним по javascript (ajax-post, ajax-get и т. Д.) – murrometz

ответ

0

Насколько спасая результат манипуляций JSON на диск, который должен быть сделан на заднем конце , или вы можете открыть окно с файлом в качестве содержимого, установив для MIME-типа значение json, которое может побудить пользователя сохранить его на свой компьютер в зависимости от настроек браузера. См. http://www.w3schools.com/jsref/met_doc_open.asp.

См. Ниже, чтобы манипулировать объектом JSON.

var amir='{"reports":[' + 
 
    '{"id": "1","type": "admin","name": "amir","email": "[email protected]","password": "123"},' + 
 
    '{"id": "2","type": "member","name": "kevin","email": "[email protected]","password": "1234"}]}'; 
 

 
var obj = JSON.parse(amir); 
 

 
document.getElementById("before").innerHTML = JSON.stringify(obj); 
 
console.log("Before", JSON.parse(JSON.stringify(obj))); // objects use pointers, clone it to see the value at this point 
 

 

 
// Add a new member into the array (example, using made up values) 
 
obj.reports.push({ 
 
    "id": ""+obj.reports.length + 1, 
 
    "type": "member", 
 
    "name": "Joe", 
 
    "email": "[email protected]", 
 
    "password": "ajdj12oi42" 
 
}); 
 

 
document.getElementById("during").innerHTML = JSON.stringify(obj); 
 
console.log("During", JSON.parse(JSON.stringify(obj))); // objects use pointers, clone it to see the value at this point 
 

 
// When deleting items, it is often easier to start high, and end low 
 
for(var c = obj.reports.length - 1; c >= 0; c--) { 
 
    // Delete member in JSON where id == 1 and email == [email protected] 
 
    if(obj.reports[c].id == "1" && obj.reports[c].email == "[email protected]") { 
 
    obj.reports.splice(c, 1); 
 
    } else { 
 
    // Add values into the objects (example, using random numbers) 
 
    obj.reports[c].newKey = "New Value! " + Math.floor(Math.random() * 100); 
 
    } 
 
} 
 

 
document.getElementById("after").innerHTML = JSON.stringify(obj); 
 
console.log("After", JSON.parse(JSON.stringify(obj))); // objects use pointers, clone it to see the value at this point
<h1>Before</h1> 
 
<div id="before"></div> 
 

 
<h1>During</h1> 
 
<div id="during"></div> 
 

 
<h1>After</h1> 
 
<div id="after"></div>

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