Я использую таблицу данных Angular Material, для которой требуется таблица для отображения данных.
Я бы преобразовал этот формат данных JSON, который бэкэнд отправляет во внешний интерфейс
[{"text":"HELEO"},{"text":"HELEO"},{"text":"popopo"},{"text":":kjnkjn"},{"text":"jhjh"}]
В этот формат
[ { text: 'HELEO' },
{ text: 'HELEO' },
{ text: 'popopo' },
{ text: 'jhjh' } ]
Вот мой сервис:
test: nomchamp[];
gettext(): Observable<any> {
return this.http.get<nomchamp[]>(this.url)
.map(res => { console.log(res); return this.test = JSON.parse(res) });
}
В моем бэкэнде:
router
.route("/")
.get(function (req, res, err) {
// Get a database reference to our posts
var db = admin.database();
var ref = db.ref("/");
// Attach an asynchronous callback to read the data at our posts reference
ref.once("value", function (snapshot) {
var list = [];
snapshot.forEach(function (elem) {
list.push(elem.val());
})
console.log(list);
console.log(JSON.stringify(list))
res.send(list);
}, function (errorObject) {
console.log("The read failed: " + errorObject.code);
res.status(500).send(errorObject.code);
});
});
Я использую stringify, чтобы иметь возможность отправлять данные через res.send
Используя JSON.parse, я получаю эту ошибку:
JSON.parse: неожиданный символ в строке 1 столбца 2 данных JSON
Без использования parse данные не печатаются в моей таблице данных.
Единственный случай, когда это работает, - это когда я использую res.send(res)
в бэкэнде, но я бы использовал res.write(JSON.stringify(res));
JSON.parse(thatString)
приведет к объекту, который будет похож на тот, который вам нужен. Возможно, проблема в том, что вы получаете не JSON, а данные, которые ужеJSON.parse
d, поэтому JSON.parse не работает, потому что JSON.parse принимает только строки для анализа. - person Jaromanda X   schedule 24.02.2018