我在MySQL5.7中有TEST(id,INT,attributejson)表
当我尝试使用mysql包在Nodejs中查询表时,如下所示
con.query("select * from TEST where id=?", [req.params.id], function (err, results) {
if (err) throw err;
console.log(results);
});
null
[
{
"id": 2,
"package": "{\"tag\": \"tag1\", \"item\": \"item1\"}"
}
]
有没有一种方法可以将上述结果中的包项作为JSON对象而不是字符串来获取,而不需要迭代数组并执行JSON.parse来将字符串转换为JSON?
预期产出
[
{
"id": 2,
"package": {"tag": "tag1",
"item": "item1"}
}
]
有没有一种方法可以将上述结果中的包项作为JSON对象而不是字符串来获取,而不需要迭代数组并执行JSON.parse来将字符串转换为JSON?
MySQL5.7支持JSON数据类型,因此您可以将包类型更改为JSON
,并且不必在每一行上迭代和执行JSON.parse
(如果您的客户机支持此数据类型的话)。
请记住,mysql包不支持它,但mysql2支持它。
CREATE TABLE `your-table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`package` json DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB;
现在包将是一个数组/对象:
con.query("select * from TEST where id=?", [req.params.id], function (err, results) {
if (err) throw err;
console.log(results[0].package.tag); // tag1 using mysql2
console.log(results[0].package.item); // item1 using mysql2
});
如果您运行的MySQL版本低于5.7或者您不想使用json
类型,您将需要自己迭代和解析它。
您可以使用以下一个liner:
results = results.map(row => (row.package = JSON.parse(row.package), row));
如果您想知道应该还是不应该将JSON存储在关系数据库中,这个问题中有一个很好的讨论:
在数据库中存储JSON与为每个键设置新列
问题内容: 我正在使用 Python 2 从 ASCII编码的 文本文件中解析JSON 。 当使用或 加载这些文件时,我所有的字符串值都转换为Unicode对象而不是字符串对象。问题是,我必须将数据与仅接受字符串对象的某些库一起使用。我 无法更改库, 也 无法 更新它们。 是否可以获取字符串对象而不是Unicode对象? 更新资料 很久以前 ,当我坚持使用 Python 2 时就问 了 这个问题。
问题内容: 我正在使用Python 2从ASCII编码的文本文件中解析JSON 。 用json或 加载这些文件时simplejson,我所有的字符串值都转换为Unicode对象而不是字符串对象。问题是,我必须将数据与仅接受字符串对象的某些库一起使用。我无法更改库,也无法更新它们。 是否可以获取字符串对象而不是Unicode对象? 例 问题答案: 解决方案 用法示例: 它是如何工作的,为什么要使用它
我有一个方法,它应该从JSON返回不同的对象,这取决于参数中的类类型。我试着根据参数返回一个对象列表,但是我只把LinkedHashMap放入ArrayList。 我搜索了很多,但是在解决方案中,类类型的所有地方都是硬编码的。 有没有一种不用硬代码就能解决这个问题的方法? 我只想传递类类型并通过一个方法获取对象。 当我的对象有关系时,我得到这个例外 无法识别的字段"字段"(类model.orm.部
问题内容: 我正在尝试从我的Rails应用程序渲染以下树状图:http : //bl.ocks.org/mbostock/4063570 我有一个带有许多属性的模型,但我想手动嵌套这些属性,并简单地使用字符串插值来构建自己的JSON字符串,然后将其直接传递给d3。 这是我的代码: 这是我的(未缩小的)JSON字符串: 我尝试过的事情: 缩小JSON,以便仅输入一行(无效) 在字符串上运行JSON.
问题内容: 解决方案 :这是我的错误。 正确的方法是 response.body()。string() 而不是 response.body.toString() 我正在使用Jetty servlet,URL是,每次请求此URL都会返回 当在浏览器中键入url时,它会显示出来,不幸的是,当我使用时,它会显示除json字符串以外的其他内存地址。 Okhttp代码Im使用: 有人可以帮忙吗? 问题答案:
问题内容: 我有类似的xml 除了在父对象内部创建消息对象外,我还需要将消息表示为String。因此,当我执行parent.message时,输出将代替消息对象。 问题答案: idia将通过处理来建立消息的xml 。如果不幸地调用失败,则不会返回此元素的全部内容。 模型 转换器 这个测试 打印出来 但这不是所有相同的内容!例如,它会忽略空格,它们会映射到空白,而我并未测试XML实体,例如etc。