【发布时间】:2012-07-03 21:01:39
【问题描述】:
我在 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 插入语句哪里错了吗?
【问题讨论】:
-
您可以使用 sqldump 将 Java 插入的两行和手动插入的行写入文本文件,并比较与手动插入的不同之处。
标签: java json postgresql jackson