2015-08-12 2 views
0

Я работаю над приложением nodejs, которое считывает данные из json-файла. Теперь я хочу отредактировать этот json-файл в js (напишите ему). Как мне это сделать ?Редактировать json в js/node.js?

Вот мой JS код: `

var fs = require("fs") 

//function for file input 
function getFile(filename) { 
    var data = fs.readFileSync(filename,"ascii") 
    return data } 

//parsing json 
var jsonString = [getFile("File.json")] 
var jsonObj = JSON.parse(jsonString)` 
+1

Объект JSON, когда анализируется тогда, как и любой другой объект JS. Используйте [ноту объектной точки] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Property_Accessors) для доступа к любым данным, которые вы хотите. – evolutionxbox

+0

для добавления: jsonObj.key = значение, для удаления: delete jsonObj.key – Subham

ответ

2

Изменить jsonObj, как вы хотите, создать новый объект или любой другой, а затем записать файл:

fs.writeFileSync("File.json", jsonData); 

Это перепишет файл, если он существует, так что способ редактирования файла.

+0

Можно ли отредактировать только часть? – Coretool

+0

Нет, это не так. Но это не имеет смысла. Вы открываете файл, меняете часть требуемого объекта, а затем снова записываете файл. –

1

JSON объект, когда анализируется это, как и любой другой объект JS. Используйте object dot notation для доступа к любым данным, которые вы хотите.

Например, значение:

console.log(isonObi.something.value) 

Например, значение в массиве:

console.log(isonObi.something[0].value) 

От eyp

Изменить jsonObj, как вы хотите, создать новый объект или что-то еще, затем напишите файл:

fs.writeFileSync("File.json", jsonData); Это будет перезаписывать файл, если он существует, так что вы редактируете файл.

2

Вы можете загрузить json-файл, потребовав его.

var contents = require('/path/to/file.json'); 

Iterate contents как обычный объект.

1

С nodeJS, вы можете require a JSON файл.

Предположив вы получите этот файл в формате JSON:

//test.json 

[ 
    { 
    "name": "toto", 
    "code": "4" 
    }, 
    { 
    "name": "test", 
    "code": "5" 
    } 
]; 

Затем, вы можете требовать этот файл и выполнить некоторые изменения:

var json = require('./test.json'); 

json.forEach(function(elm){ 
    elm.name = 'test'; 
}); 
Смежные вопросы