2017-12-01 9 views
0

json_array_elementsを使用してpostgresデータベースでjson OV-fiets(http://fiets.openov.nl/locaties.json)を読もうとします。駅の一部の名前には、文字'が含まれています。 例..... "description": "Helmond 't Hout"postgresql文字列を含むjsonを読み取る

私のスクリプトはHelmondとtの間で失敗すると思います。 私が使用するスクリプト:

WITH data AS (SELECT 'paste the json from http://fiets.openov.nl/locaties.json'::json AS fc) 
SELECT 
    row_number() OVER() AS gid, 
    feat->'locaties' AS locaties, 
    FROM (
    SELECT json_array_elements(fc->'locaties') AS feat 
    FROM data 
) AS f;* 

++++++++++++++++++++++++++++++

エラーI取得:

*syntax error at or near "Hout" 
LINE 3: ...Images": [], "name": "HMH - OV-fiets - Helmond 't Hout", "ex.* 

は、どのように私は原因の文字に構文エラーを回避するために、スクリプトを変更することができます "

答えて

0

をここで最も簡単な回避策は、おそらく、ドル引用符のようになります。

あなたは、文字列を変更することを避けるために dollar quotingを使用することができます(Postgresの中)の代替として、SQLでは
SELECT $dq$paste the json from http://fiets.openov.nl/locaties.json$dq$::json 
0

、単一引用符は、例えば、doubling themでエスケープする必要があります。:

select 'Arthur''s house'; 

SELECT $data$Arthur's house$data$ 
関連する問題