【小技】コンパイルモードでJSON Parseのエラーを回避するには

Go down

【小技】コンパイルモードでJSON Parseのエラーを回避するには

投稿 by miyako on 2017-03-01, 12:40 pm

ドキュメントに述べられているように,JSON Parseは『JSON文字列』を解析するコマンドです。JSON文字列には,"{}"のようなオブジェクトリテラルだけでなく,日付・数値・文字列リテラルも含まれます("[]"のような配列リテラルは含まれません)。

http://doc.4d.com/4Dv16R2/4D/16-R2.1620/JSON-Parse.301-3111785.ja.html

JSON Parseの返り値は,オブジェクト・テキスト・ブール・ポインター・実数のいずれかとなっています。関数の型がしっかり宣言されている4Dの言語において,これは非常に例外的な事例です(他にはOB Get, Choose, WA Evaluate javascriptなどが挙げられます)。

代入文の左オペランドの型が不明でも,右オペランドの型が宣言されていれば,コンパイラーは,はその情報に基づいて型を推定することができます(自動変数定義)。

http://doc.4d.com/4Dv16R2/4D/16-R2.1620/Typing-Guide.300-3111291.ja.html

http://doc.4d.com/4Dv16/4D/16/Compiler-page.300-3048854.ja.html

しかし,JSON Parseの型は決まっていないため,代入文に基づいて変数の型を宣言することはできません。値を受け取る変数は,明示的に宣言されている必要があります。コンパイルモードでJSON Parseから返される値がその変数の型と一致しない場合,『ポインターによる変数の再定義をしようとしています』エラーが返される可能性があります。

こうしたエラーを避けるためには,JSON Parseのオプション引数を使用し,返り値の型を指定する必要があります(WA Evaluate javascriptにも同じようなオプションがあります)。そうすれば,JSON Parseから返される値の型が評価したJSON文字列の内容に左右されずで済むからです。

miyako

投稿数 : 234
登録日 : 2016/07/05

トップに戻る Go down

トップに戻る


 
Permissions in this forum:
返信投稿: 不可