gpt4 book ai didi

java - 在 postgresql 中使用文本类型列转义双引号并通过 jackson 解析 json

转载 作者:行者123 更新时间:2023-11-29 11:53:21 25 4
gpt4 key购买 nike


我在 postgresql 中定义了下表:

        Column      |          Type          | Modifiers 
-----------------+------------------------+-----------
id | uuid | not null
entity_snapshot | text |
Indexes:
"pk_id" PRIMARY KEY, btree (id)

我想存储以下 JSON 字符串:

[ "org.test.MyUniqueId", {:   "uuid" : "f4b40050-9716-4346-bf84-8325fadd9876": } ]

对于某些测试,我没有使用 Jackson 来执行此操作,而是尝试手动键入 SQL,这是我的问题 - 我似乎无法正确使用。
我目前的尝试是:

insert into my_table(id,entity_snapshot) values ('d11d944e-6e78-11e1-aae1-52540015fc3f','[ \"org.test.MyUniqueId\", {:   \"uuid\" : \"f4b40050-9716-4346-bf84-8325fadd9876\": } ]');

当我从表中选择时,生成一条看起来像我需要的记录,但是当我尝试使用 Jackson 解析它时,我得到一个错误 -

org.apache.commons.lang.SerializationException: org.codehaus.jackson.JsonParseException: Unexpected character (':' (code 58)): was expecting double-quote to start field name

不用说,如果通过我的 java 代码插入相同的记录,我可以对其进行解析,并且当涉及到用人眼查看记录时,它对我来说看起来是一样的。
你能告诉我我的 SQL 插入语句哪里错了吗?

最佳答案

您可以使用 Dollar-Quoted String Constants。详情在这里Postgres documentation

在你的情况下查询应该是这样的

insert into my_table(id,entity_snapshot) values ('d11d944e-6e78-11e1-aae1-52540015fc3f',$$[ "org.test.MyUniqueId", {:   "uuid" : "f4b40050-9716-4346-bf84-8325fadd9876": } ]$$);

关于java - 在 postgresql 中使用文本类型列转义双引号并通过 jackson 解析 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11310763/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com