Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.07.2018, 15:48
Новичок на форуме
Отправить личное сообщение для Floky Посмотреть профиль Найти все сообщения от Floky
 
Регистрация: 19.07.2018
Сообщений: 8

Как записать определенное содержимое в файл 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
}
Ответить с цитированием
  #2 (permalink)  
Старый 21.07.2018, 16:52
Профессор
Отправить личное сообщение для Audaxviator Посмотреть профиль Найти все сообщения от Audaxviator
 
Регистрация: 28.04.2017
Сообщений: 214

Короче, немного объяснений.
Файл формата 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' }

Резюме: не знаю, открыло ли вам это на что-то глаза...

Последний раз редактировалось Audaxviator, 21.07.2018 в 17:00.
Ответить с цитированием
  #3 (permalink)  
Старый 21.07.2018, 17:23
Профессор
Отправить личное сообщение для Audaxviator Посмотреть профиль Найти все сообщения от Audaxviator
 
Регистрация: 28.04.2017
Сообщений: 214

Для пущей убедительности я только что проделал то же самое в языке 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".

Последний раз редактировалось Audaxviator, 21.07.2018 в 17:27.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно записать данные в JSON Alex_D181 Angular.js 1 19.06.2015 13:01
как запомнить выбранный инпутом файл? что бы продолжить с ним работу после нажатия F5 aRpi Events/DOM/Window 13 26.05.2015 17:35
Как достать данные из JSON массива? Dimaz jQuery 15 27.11.2012 21:58
Как обработать json с сервера Dimaz jQuery 0 25.11.2012 14:48
как использовать json AquaGen jQuery 15 20.01.2012 09:53