Как записать определенное содержимое в файл Json?
Вот мой код который выводит содержание profi.json
И ниже содержимое Json Вопрос как вывести не все содержимое а только к примеру "shopperName": "Ваня Иванов", И записать в другой файл DATA.json И вопрос другой Как сделать чтение нескольких файлов JSON и после не перезапись в DATA.json а именно добавление в этот же файл var fs = require('fs'); var file = __dirname + '/profi.json'; fs.readFile(file, 'utf8', function (err, data) { if (err) { console.log('Error: ' + err); return; } data = JSON.parse(data); console.dir(data); }); { "orderID": 12345, "shopperName": "Ваня Иванов", "shopperEmail": "ivanov@example.com", "contents": [ { "productID": 34, "productName": "Супер товар", "quantity": 1 }, { "productID": 56, "productName": "Чудо товар", "quantity": 3 } ], "orderCompleted": true } |
Короче, немного объяснений.
Файл формата JSON - это строка. Одна строка. Просто строка символов (char - ну, если вы знаете, что это такое). На самом деле можно создать такой файл с именем, допустим, ne_json (без расширения) {"a":"zx","b":"sd"} запросить его, распарсить... var fs = require('fs'); var f = fs.readFileSync(__dirname + '/ne_json'); var j = JSON.parse(f) console.log(j); и получить в результате javascript-объект { a: 'zx', b: 'sd' } Резюме: не знаю, открыло ли вам это на что-то глаза... |
Для пущей убедительности я только что проделал то же самое в языке Golang (я как раз сейчас занимаю себя его освоением).
Вот так: package main import ( "encoding/json" "fmt" "io/ioutil" ) func main() { fmt.Println(decodJSON("./ne_json")["a"]) fmt.Println(decodJSON("./ne_json")["b"]) } func decodJSON(file string) map[string]interface{} { bytes, err := ioutil.ReadFile(file) if err != nil { fmt.Println(err) } var dat map[string]interface{} if err := json.Unmarshal(bytes, &dat); err != nil { panic(err) } return dat } И - о чудо! - строчка благополучно прочиталась и была "декодирована" в структуру с результатом в консоль zx sd Резюме: я рад, что мои теоретические представления о том, что расширение *.json не значит ничего (от слова совсем), полностью подтвердились. P.S. И не стоит удивляться, что для той же примитивной операции, но - в Go, потребовало сильно больше букав напейсать. Это оттого, что JSON - аббревиатура "JavaScript Object Notation". |
Часовой пояс GMT +3, время: 02:04. |