2017-01-26 8 views
1

JSONファイルを使用していくつかのSQLクエリをキー値のペアとして保存していますが、一部のSQLクエリ文字に起因すると思われる解析エラーが発生しています。JSONでSQLクエリを解析中にエラーが発生しました

SQLクエリを削除してプレーンテキストを入力すると、解析エラーの原因となるSQL文字が正しく解析されます。小さなスニペット

{ 
    "SqlPart1": { 
    "SqlRead": " 
    SELECT 
    Date, 
    ID 
    FROM DB.dbo.TableName 
    WHERE SendEmail = 'true' 
    ", 
    "SqlWrite": "SqlQuery" 
    }, 

    "SqlPart2": { 
    "SqlRead": "SqlQuery", 
    "SqlWrite": "SqlQuery" 
    } 
} 

以下

エラー:問題を引き起こしていただきましたParse error on line 3: ...": { "SqlRead": " SELECT Date, ----------------------^ Expecting 'STRING', 'NUMBER', 'NULL', 'TRUE', 'FALSE', '{', '[', got 'undefined'

任意のアイデアですか? WHERE句で一重引用符をエスケープしようとしましたが、違いはありませんでした。

おかげ

+0

わかりませんが、JSONでこのように複数行の文字列を追加できないと思います。 '' SqlRead ': "\ nSELECT \ n日付、\ n ID \ n FROM DB.dbo.TableName \ nここでSendEmail =' true '\ n" –

答えて

1

あなたは書式設定を維持する必要がある場合は、あなたのコード内の単一の文字列に配列に参加、その後

{ 
    "SqlPart1": { 
    "SqlRead": ["SELECT", 
    "Date,", 
    "ID", 
    "FROM DB.dbo.TableName", 
    "WHERE SendEmail = 'true'"] 
    ", 
    "SqlWrite": "SqlQuery" 
    }, 

を分割することができ、大きなSQLクエリで、たとえば言います。理想的ではありませんが、json \ javascriptの制限です。

2

JSONは、このように複数行のテキストデータをサポートしていません。あなたはこのようにしなければなりません:

{ 
    "SqlPart1": { 
    "SqlRead": "\n SELECT\n Date, ...." 
... 

つまり、文字列リテラルに改行があってはいけません。

関連する問題