存储在Sqlite中的JSON字符串 - 如何转义单引号和双引号

时间:2014-08-19 18:55:41

标签: ruby json sqlite escaping

我需要在sqlite中存储以下json消息。但是我无法这样做,因为我的输入消息中有单引号。虽然处理双引号的转义,但单引号仍然会引发错误。怎么解决这个问题?输入消息如下..

'{
"request" : [
    {
        "name" : "test",
        "number" : "8",
        "data" : {
            "message" : "This is a test 'messa'ge "
        }
    }
],

"data1" : {
    "data2" : 1,
    "data3" : "Hello"
},

"message1" : "tes't example"
}'

2 个答案:

答案 0 :(得分:0)

ins = db.prepare('insert into table_name (column_name) values (?)')
ins.execute(your_string)

答案 1 :(得分:0)

您的字符串将导致ruby语法错误:

syntax error, unexpected tIDENTIFIER, expecting end-of-input
            "message" : "This is a test 'messa'ge "

要创建字符串,您可以使用:

  1. %q [] ,相当于单引号。

  2. %Q [] ,相当于双引号。

  3. 您可以使用任何字符作为分隔符,例如。

    %q|Dave's head is small.|
    
    %q{Dave's head is small.}
    
    %q=Dave's head is small.=
    

    所以你可以免费创建你的字符串错误,如下所示:

    your_string =  %q[{
        "request" : [
            {
                "name" : "test",
                "number" : "8",
                "data" : {
                    "message" : "This is a test 'messa'ge "
                }
            }
        ],
    
        "data1" : {
            "data2" : 1,
            "data3" : "Hello"
        },
    
        "message1" : "tes't example"
        }]
    
相关问题