我有两个名为author
和create table book(bookid BIGSERIAL,
bookname VARCHAR,
book_type VARCHAR,
book_pub_date DATE
);
create table Author(Authorid BIGSERIAL,
Authorname VARCHAR,
Author_emailadddr VARCHAR,
Author_phone integer
);
的表。
{
"bookid" : "1",
"bookname" : "sample book",
"book type" : "history",
"book_pub_date" : "2015-09-08",
"Author" : [{
"Authorname" : "xyz",
"Author_emailadddr" : "xyz@gmail.com",
"Author_phone" : "080-99978754"
}
]
}
应用程序将通过存储的函数传递JSON格式的数据。 那么如何将JSON数据存储到表中呢?
输入数据(应用程序将通过存储的函数传递以下数据):
settingsButton =[UIButton buttonWithType:UIButtonTypeCustom];
settingsButton.frame= CGRectMake(SCREEN_WIDTH-[UIImage imageNamed:@"setting.png"].size.width-30, 22, [UIImage imageNamed:@"setting.png"].size.width, [UIImage imageNamed:@"setting.png"].size.height);
[settingsButton setImage:[UIImage imageNamed:@"setting.png"] forState:UIControlStateNormal];
[settingsButton addTarget:self action:@selector(settingButtonMethod) forControlEvents:UIControlEventTouchUpInside];
[settingsButton setMultipleTouchEnabled:NO];
settingsButton.exclusiveTouch=YES;
settingsButton.backgroundColor=CLEAR_COLOR;
[self.view addSubview:settingsButton];
是否可以将json数据解析为表?
(我正在使用PostgreSQL 9.2)。
答案 0 :(得分:0)
我认为你可能需要Postgres 9.3+来获得纯粹的SQL解决方案。与较新版本相比,9.2具有有限的json功能。 http://www.postgresql.org/docs/9.2/static/functions-json.html
答案 1 :(得分:0)
在PostgreSQL 9.2中,您需要使用pl / perl,pl / python等编写的函数,使用该语言的相关JSON解码支持,然后使用SPI将提取的数据插入表中。使用,例如Python的json
模块或Perl的JSON
模块提取字段,然后相关的SPI调用创建SQL以根据提取的数据进行插入。
请参阅:
特别要注意plperl和plpython文档中与数据库交互和运行查询的部分。
使用外部脚本执行此操作确实没什么不同。
在PostgreSQL 9.4及更高版本中,您可以开始使用PostgreSQL自己的json support来提取pl / pgsql和insert
中提取部分的json部分。不再需要plperl或plpython。