Как вернуть действительный JSON из столбца mysql, где хранится объект javascript - PullRequest
0 голосов
/ 29 апреля 2019

У меня есть некоторые данные, которые мне нужно хранить внутри таблицы mysql.В таблице есть несколько столбцов, среди которых есть столбцы book и authors, оба из которых являются полями TEXT.Мне нужно сохранить объект javascript в столбце книги и массив объектов в столбце авторов.

Внутри моего углового компонента у меня есть объект book и массив объектов авторов.

const book = {
   title: "hello world",
   subtitle: "learn C programming in a week",
   cover: "path/to/cover.png"
};

const authors = [{id: 3, name: "John Doe"}, {id: 4, name: "Jane Doe"}];

Объект, который я передаю своему сервису для обработки запроса на публикацию, выглядит примерно так:

{
   id: this.generateId(),
   category: this.category,
   book: JSON.stringify(book),
   authors: JSON.stringify(authors),
   price: this.price
}

Оба они подвергаются строковому преобразованию через JSON.stringify(...) и затем успешно публикуются в базе данных.Нет проблем там.Я должен также упомянуть, что значения объекта собираются и помещаются в оператор SQL в запросе POST, например ...

`INSERT INTO library (id, category, book, authors)
 VALUES ('${obj['id']}',
              '${obj['category']}',
              '${obj['book']}',
              '${obj['authors']}')`

Однако, когда я пытаюсь извлечь данные из этой таблицы через мой угловой сервис, угловой бросает ошибку Http failure during parsing for http://localhost:4200/.

Когда я запускаю тот же запрос через postman, я возвращаю данные, но затем, когда я проверяю правильность возвращенного JSON, он не действителен.Возвращенные данные выглядят примерно так ... title" подсвечивается с ошибкой Expecting comma, colon or }, not string

[
  {
    "book": "{
      "title": "hello world",
      "subtitle": "learn C programming in a week",
      "cover": "path/to/cover.png"
    }",
    "authors": "[{"id": "3", "name": "John Doe"}, {"id": "4", "name": "Jane Doe"}]"
  }
]

Чего мне не хватает?Как мне вернуть действительный JSON?

1 Ответ

0 голосов
/ 29 апреля 2019

"book": "{- похоже, вы разделили два значения по отдельности, а затем добавили к одному объекту?

Если это так, сначала создайте один объект и зафиксируйте его целиком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...