【发布时间】:2016-06-04 14:14:17
【问题描述】:
我想阅读使用 JDBC 调用在 java 中定义为 JSON 的 INFORMIX 表列。这是我在 INFORMIX 12.10 中的表模式
create row type fullname_t
(
first varchar(20),
middle varchar(20),
last varchar(20)
);
create row type person_t
(
name fullname_t,
age integer
);
create row type phone_t
(
type varchar(10),
contact varchar(20)
);
create table teachers (
id integer,
person person_t,
dept varchar(20),
hobbies LIST(varchar(255) not null),
phones LIST(phone_t not null),
address "informix".json not null );
样本数据
DELETE FROM teachers WHERE 1=1;
INSERT INTO teachers VALUES (100, "ROW(ROW('Bill', 'William', 'Smith'), 27)", "physics", "LIST{'Cricket', 'Soccer'}","LIST{ROW('FIXED', '08023456789'), ROW('MOBILE', '9035252525')}",'{type: "HOME", addrLine1: "123525", city: "Bangalore", zipCode: "560001", state: "KA", country: "INDIA"}'::JSON);
INSERT INTO teachers VALUES (101, "ROW(ROW('John', 'Martin', 'Smith'), 30)", "math", "LIST{'Tennis', 'Baseball'}","LIST{ROW('FIXED', '1-800-CALL-SUPPORT')}",'{type: "HOME", addrLine1: "51st A cross 5th Main", city: "Chennai", zipCode: "909404", state: "TN", country: "INDIA"}'::JSON);
我能够读取自定义 ROW 类型,例如人、电话,但 JSON 类型的地址除外。
感谢任何将 JSON 对象读取为字符串的帮助/建议,随后,我可以获得 Jackson API 来转换 JSON 字符串。
需要自定义 SQLData 映射,但不确定如何处理 JSON
JDBC 选择的输出
Teacher [id=100, person=Person [name=Fullname [first=Bill, middle=William, last=Smith], age=27], dept=physics, hobbies=[Cricket, Soccer], phones=[Phone [type=FIXED, contact=08023456789], Phone [type=MOBILE, contact=9035252525]], address=null]
Teacher [id=101, person=Person [name=Fullname [first=John, middle=Martin, last=Smith], age=30], dept=math, hobbies=[Tennis, Baseball], phones=[Phone [type=FIXED, contact=1-800-CALL-SUPPORT]], address=null]
提前致谢
【问题讨论】: