Ich habe eine TEXT
Spalte mit gültigen JSON-Zeichenfolge.PostgreSQL 9.2 - Konvertieren TEXT JSON Zeichenfolge, um JSON/Hstore
CREATE TABLE users(settings TEXT);
INSERT INTO users VALUES ('{"language":"en","gender":"male"}');
INSERT INTO users VALUES ('{"language":"fr","gender":"female"}');
INSERT INTO users VALUES ('{"language":"es","gender":"female"}');
INSERT INTO users VALUES ('{"language":"en","gender":"male"}');
Ich möchte einige Felder in ein Abfrageformat umwandeln.
Ein REGEXP_REPLACE
für jedes Feld würde tun (language
Feld und gender
Feld). Aber da es gültige JSON, ist es Art und Weise zu:
- Konvertieren in das JSON-Typ
- Konvertieren in hstore Typ
- oder jede andere gangbare Wege
SQLFiddle: http://sqlfiddle.com/#!12/54823
Gewünscht Funktionalität ist eine von interessanten Features 9.3. Ich lese einige Artikel, wo beschrieben wurde mit pl/js8 für diesen Zweck http://www.postgresonline.com/journal/archives/263-PLV8JS-and-PLCoffee-Part-2-JSON-search-requests.html –
Danke. Ich entdeckte auch, dass ich das erste tun kann, indem ich es einfach in JSON umwandele: 'settings :: json'. Aber es ist nicht abfragbar. Abgestimmt mit regexp. – huy
FYI gibt es einen Backport von 9.3 JSON Funktionserweiterungen für PostgreSQL 9.2 http://adpgtech.blogspot.co.nz/2013/04/backport-of-93-json-enhancements.html –