如何使用PostgreSQL中的JSONB数据类型

如何使用PostgreSQL中的JSONB数据类型,第1张

ostgreSQL 94 正在加载一项新功能叫jsonb,是一种新型资料,可以储存支援GIN索引的JSON 资料。换言之,此功能,在即将来临的更新中最重要的是,如果连这都不重要的话,那就把Postgres 置于文件为本数据库系统的推荐位置吧。
自从92开始,一个整合JSON 资料类型已经存在,带有一整套功能(例如资料产生和资料解构功能),还有93新增的 *** 作者。当使用JSON 资料类型,资料的被存储成一完全一样的副本,功能还在此之上运作,还另外需要后台运作的重新分析。
这心得JSONB 资料类型以已降解的2元格式存储,所以,插入此资料会比JSON高效,因为后台不再需要重新分析,因此让它更快速运行,而且还兼顾GIN 索引。就是因为最后这个原因,我们实际上建议读者使用jsonb来代替json制作程式(当然你还可以因应需要而使用json)。请记住jsonb使用相同的 *** 作者和功能,读者们可以看我之前的帖子去令你得到些什么启发(或者干脆看Postgres的文件)。

一般是这样的,先将对象类型(在js中json就是一个对象),使用jsonjs(有些浏览器支持,有些需要引入)的方法:
JSONparse(jsonstr); //可以将json字符串转换成json对象
JSONstringify(jsonobj); //可以将json对象转换成json对符串
的第二个转换成字符串,然后把字符串当作一个参数的值再为其添加一个key然后以key/value的格式将数据传到后台。
之后后台使用requestgetParameter();的方式得到json数据。

package bean;
import comgooglegsonannotationsSerializedName;
import javautilList;
public class TestBean
{
private String status;
private Msg msg;
public String getStatus() {
return status;
}
public void setStatus(String status) {
thisstatus = status;
}
public Msg getMsg() {
return msg;
}
public void setMsg(Msg msg) {
thismsg = msg;
}
public class Msg
{
private List<City> city;
public List<City> getCity() {
return city;
}
public void setCity(List<City> city) {
thiscity = city;
}
public class City
{
@SerializedName("@attributes")
private SpecialKey key;//奇怪的key处理
public SpecialKey getKey() {
return key;
}
public void setKey(SpecialKey key) {
thiskey = key;
}
public class SpecialKey
{
private String cityX;
private String cityY;
private String cityname;
private String centername;
private String fontColor;
private String pyName;
private String state1;
private String state2;
private String stateDetailed;
private String tem1;
private String tem2;
private String temLow;
private String windState;
private String windDir;
private String windPower;
private String humidity;
private String url;
public String getCityX() {
return cityX;
}
public void setCityX(String cityX) {
thiscityX = cityX;
}
public String getCityY() {
return cityY;
}
public void setCityY(String cityY) {
thiscityY = cityY;
}
public String getCityname() {
return cityname;
}
public void setCityname(String cityname) {
thiscityname = cityname;
}
public String getCentername() {
return centername;
}
public void setCentername(String centername) {
thiscentername = centername;
}
public String getFontColor() {
return fontColor;
}
public void setFontColor(String fontColor) {
thisfontColor = fontColor;
}
public String getPyName() {
return pyName;
}
public void setPyName(String pyName) {
thispyName = pyName;
}
public String getState1() {
return state1;
}
public void setState1(String state1) {
thisstate1 = state1;
}
public String getState2() {
return state2;
}
public void setState2(String state2) {
thisstate2 = state2;
}
public String getStateDetailed() {
return stateDetailed;
}
public void setStateDetailed(String stateDetailed) {
thisstateDetailed = stateDetailed;
}
public String getTem1() {
return tem1;
}
public void setTem1(String tem1) {
thistem1 = tem1;
}
public String getTem2() {
return tem2;
}
public void setTem2(String tem2) {
thistem2 = tem2;
}
public String getTemLow() {
return temLow;
}
public void setTemLow(String temLow) {
thistemLow = temLow;
}
public String getWindState() {
return windState;
}
public void setWindState(String windState) {
thiswindState = windState;
}
public String getWindDir() {
return windDir;
}
public void setWindDir(String windDir) {
thiswindDir = windDir;
}
public String getWindPower() {
return windPower;
}
public void setWindPower(String windPower) {
thiswindPower = windPower;
}
public String getHumidity() {
return humidity;
}
public void setHumidity(String humidity) {
thishumidity = humidity;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
thisurl = url;
}
}
}
}
}
可以使用Gson,没有可以去网上下载一个。注意bean文件的对应的类型可以改成你自己数据的类型,其实如果没有算数运算全用String最好,免得返回奇怪的东西报错。关键在于用@SerializedName("@attributes")处理奇怪的key
TestBean bean = new Gson()fromJson(json, TestBeanclass);
List<TestBeanMsgCity> cityList = beangetMsg()getCity();
for (int i = 0; i < cityListsize();i++)
{
if (cityListget(i)getKey()getCityname()equals("福州"))
{
// 这就是你要的那条“福州”的对象了
}
}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13397114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-28
下一篇 2023-07-28

发表评论

登录后才能评论

评论列表(0条)

保存