Mam kolumnę TEXT
zawierającą prawidłowy ciąg JSON.PostgreSQL 9.2 - Konwertuj ciąg tekstowy TEKST na typ 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"}');
Chcę przekształcić niektóre pola do formatu nadającego się do zapytania.
Dla każdego pola będzie (language
pole i gender
pole). Ale ponieważ jest to ważne JSON, czy istnieje sposób, aby:
- Konwersja do typu JSON
- Konwersja do typu hstore
- lub innych możliwych sposobów
SQLFiddle: http://sqlfiddle.com/#!12/54823
Żądana funkcjonalność jest jednym z ciekawych funkcji 9.3. Czytałem niektóre artykuły, w których opisano użycie w tym celu języka pl/js8 http://www.postgresonline.com/journal/archives/263-PLV8JS-and-PLCoffee-Part-2-JSON-search-requests.html –
Dzięki. Odkryłem też, że mogę zrobić pierwszy, po prostu rzucając go na JSON: 'settings :: json'. Ale nie jest to możliwe do sprawdzenia. Rozstrzygnięty z regexp. – huy
FYI jest backport 9.3 poprawek funkcji JSON dla PostgreSQL 9.2 http://adpgtech.blogspot.co.nz/2013/04/backport-of-93-json-enhancements.html –