\\nなどがJSONの文字リテラルになるのは、JSONの文字列の中なのだ。だから
"\\n"
は、json:parseに対して\nというシンボルを与えているにすぎない(シンボルリテラルということ)。これがjson:parseにとってNewlineの意味になるのは、
"\"\\n\""
においてだ。なので、json:parseに与えられるストリームや文字列として改行コードをスキップしますよ、というのは、JSONの外として与えるべきであり、それは、
(json:parse (format nil "{ \"input_01\" : 123,~% \"input_02\" : \"hoge\" }"))
などであり、これは
;; => #<EQUAL hash-table with 2 entries @ #x10013ae732>
と正しくskip-whitespaceされてエラーにならない。
なお、ここで言っているJSONの意味とはCLオブジェクトによる意味論である。
こつこつ。
0 件のコメント:
コメントを投稿