Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как прочитать не стандартный JSON (https://javascript.ru/forum/misc/74540-kak-prochitat-ne-standartnyjj-json.html)

Зосимов 19.07.2018 14:06

Как прочитать не стандартный JSON
 
доброго дня.
есть файл file.json в котором содержатся строки
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}

подскажите пожалуйста, как считывать данные по по отдельности в виде таблицы:
John | Doe | 35 | Male | English | car | Honda
John | Doe | 35 | Male | English | car | Honda

пробую $.getJSON() но так как формат не совсем верный, выходит ошибка (

j0hnik 19.07.2018 14:16

var data = [{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"},
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"},
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"},
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}];

console.log(data.map(el=>Object.values(el).join(' | ')).join('\n'));

Зосимов 19.07.2018 14:33

Цитата:

Сообщение от j0hnik (Сообщение 490263)
console.log(data.map(el=>Object.values(el).join(' | ')).join('\n'));[/JS]

спасибо. но выходят 0 везде почему то :(

когда я делаю alert(data) то выводятся строки:
{"name":"John","lastName":"Doe","age":35,"gende r":"Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}

вот эти строки, я хотел привести к нормальном виду. желательно даже в <li> как то загнать каждую строку

рони 19.07.2018 14:49

Зосимов,
на сервере можно сделать JSON ?

Alexandroppolus 19.07.2018 14:56

Цитата:

Сообщение от Зосимов (Сообщение 490268)
спасибо. но выходят 0 везде почему то :(

когда я делаю alert(data) то выводятся строки:
{"name":"John","lastName":"Doe","age":35,"gende r":"Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}

вот эти строки, я хотел привести к нормальном виду. желательно даже в <li> как то загнать каждую строку

набросок
var data = `{"name":"John","lastName":"Doe","age":35,"gende r":"Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}
{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}
`;

alert(data.trim().split(/\r?\n/).map(function(item) {
	var data = JSON.parse(item);
	return data.name + ' | ' + data.lastName;
}).join('\n'));

Зосимов 19.07.2018 14:57

Цитата:

Сообщение от рони (Сообщение 490269)
Зосимов,
на сервере можно сделать JSON ?

каждый раз при нажатии кнопки, записываются такие данные
let student = {  
    name: 'John',
    lastName: 'Doe',
    age: 35, 
    gender: 'Male',
    department: 'English',
    car: 'Honda' 
};

let data = JSON.stringify(student);

я так понимаю данные нужно привести в правильный формат?

рони 19.07.2018 15:04

Зосимов,
let arr = [];
let student = {
    name: 'John',
    lastName: 'Doe',
    age: 35,
    gender: 'Male',
    department: 'English',
    car: 'Honda'
};
arr.push(student)
let data = JSON.stringify(arr);

Зосимов 19.07.2018 15:24

Цитата:

Сообщение от рони (Сообщение 490274)
Зосимов,
let arr = [];
let student = {
    name: 'John',
    lastName: 'Doe',
    age: 35,
    gender: 'Male',
    department: 'English',
    car: 'Honda'
};
arr.push(student)
let data = JSON.stringify(arr);

теперь данные выглядят так в файле
[{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}]
[{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}]
[{"name":"John","lastName":"Doe","age":35,"gender": "Male","department":"English","car":"Honda"}]

осталось только их получить правильно с файла

рони 19.07.2018 15:27

Зосимов,
а нельзя всех студентов сначала добавить и только потом сделать JSON из массива?

Зосимов 19.07.2018 15:30

рони, к сожалению нет. получается каждый раз в файл добавляем записи.
они там хранятся и выводятся для просмотра.


Часовой пояс GMT +3, время: 00:11.