我有一些数据需要存储在mysql表中。该表有几列,其中book
和authors
列,它们都是TEXT字段。我需要在book列中存储一个javascript对象,在authors列中存储一个对象数组。
在我的角度组件中,我有book对象和authors对象数组。
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(...)
进行了字符串化,然后成功地发布到了数据库中。没问题。
我还应该提到,对象值已被捕获并放入POST请求的SQL语句中,就像这样...
`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?
答案 0 :(得分:0)
“ book”:“ {-看来您已经分别将这两个值加了细化,然后又添加到了一个对象上?
如果是这样,请首先创建一个对象并对整个对象进行字符串化。