問題
ログのメッセージフィールドにJSONコンテンツが送信されても、自動的には解析されず、属性(キーと値のペア)としても保存されません。代わりに、コンテンツはメッセージの中に残ります。また、メッセージが の文字数制限を超えた場合、切り捨てられることがあります 。
解決
このようなことが起こる理由
- コンテンツが有効なJSONでない場合は、解析されません。代わりに、文字列として保存され、文字数制限を超える場合は切り捨てられます。
- " コンテンツが有効なJSONである場合、エスケープ文字を使って"文字列化されている可能性があります。その場合、まず文字列として評価されます。つまり、JSONとして評価される前に、4096文字に切り詰められます。切り捨てられた結果は無効なJSONとなり、データは文字列として保存されます。
この問題を解決するには、文字列に変換されていないJSONを含むメッセージを送信します。このコンテンツは、合計の長さが文字数制限を超えていても、解析されます。JSONに配列が含まれている場合、配列はフラット化され、未解析の文字列として保存されます。