sqlite通常理解的数据库字段类型,包括:
NULL - 空值
INTERGER - 有符号整数类型
REAL - 浮点数类型
TEXT - 字符串(其编码取决于DB的编码)
BLOB - 二进制表示
JSON格式的数据可以转换为文本类型保存到数据库。如果需要读取时,可以读取后再转换为JSON。
下面以一个例子来说明使用方法。例子的客户端使用aardio、服务端使用nodejs、数据库使用sqlite3。
一、数据库设计
staff为JSON内容,如下图
数据库设计保存数据内容格式如下:
数据存储二、客户端编程实现
客户端按对象方式组装字段,然后通过 JSON.stringify() 转换为字符串
客户端编程实现三、服务端编程实现
服务器端接收到请求后,将接收信息插入到数据库。
服务器端编程实现四、unicode编码的中文问题
JSON.stringify()转换后,中文会自动转为unicode码,例如:
{"cellphone":"2511","department":"\u4FE1\u606F\u79D1","name":"\u6587\u8001\u5E08"}
unicode码唯一的问题就是不直观,当条件查询时,中文不能直接使用。
解决方法有两个:一是当条件查询时,把条件也转换成json格式;二是保存时,保持中文格式不转换,通过2次转换可以解决:
staff: JSON.stringify(JSON.parse(staffinfo)),
网友评论