小编Yai*_*sky的帖子

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


我在postgresql中定义了以下表:

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

我想存储以下JSon字符串:

[ "org.test.MyUniqueId", {:   "uuid" : "f4b40050-9716-4346-bf84-8325fadd9876": } ]
Run Code Online (Sandbox Code Playgroud)

对于一些测试,而不是使用杰克逊这样做,我尝试手动键入一个SQL,这是我的问题 - 我似乎无法正确.
我目前的尝试是:

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

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

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

毋庸置疑,如果通过我的java代码插入相同的记录,我可以解析它,当用人眼观察记录时,它看起来和我一样.
你能告诉我我的SQL插入语句中哪里出错吗?

java postgresql json jackson

2
推荐指数
1
解决办法
1万
查看次数

标签 统计

jackson ×1

java ×1

json ×1

postgresql ×1