「なでしこv1」開発掲示板

なでしこv1のバグや要望を書き込む掲示板

(#1960) 開発者向け修正箇所情報 - うぇいく (2012-03-20 05:22) /高 再修正依頼
・ハッシュをエンコードすると「"":null」というエントリが混ざる
文字列の余分なエリアの切り捨て漏れです。nako_hash_keysの返却値を受け取るようにしてSetLengthすると良さそうです。
----------- unit_kabin.pas(78付近)
    SetLength(s, 1024 * 16);
    i :=nako_hash_keys(p, PAnsiChar(s), 1024 * 16);
    SetLength(s,i);
-----------
・\uXXXXで正しく変換されない文字がある
json.pasがXXXXの16進表記で英大文字を受け付けないためです。'A'..'F'も十六進表記文字の一覧に加えると良さそうです。
-----------json.pas(454付近)
  json_hex_chars = '0123456789abcdef';
  json_hex_chars_set = ['0'..'9','a'..'f','A'..'F'];
-----------
・jsonのデータにnullがあるとデコードで全体が空になる
objがnullの場合のデータを生成していないため。nullに対してはobjがnullというデータとして取得され、json_type_nullは無効なjsonデータのときに使われるようです。
-----------unit_kabin.pas(111付近)
  if obj = nil then
  begin
    Result := hi_var_new;
    Exit;
  end;
-----------
他、jsonのハッシュのキーが非ASCIIの場合、デコードの際にutf8toAnsiを介さず返されるためにキーだけUTF8のままになっています。JSONの仕様上発生しえるのなら、あわせて対処が必要そうです。
「JSONデコード」命令で、null があると.. / U D (2010-07-19 22:44) (#1688)/ 中 アイデア
  巨大な整数でオーバーフロー / U D (2010-07-21 00:58) (#1693)/ 中 アイデア
  修正済み / クジラ飛行机 (2010-08-11 00:39) (#1714)/ 中 確認待ち
  null 問題は未解決 / U D (2010-09-29 00:19) (#1785)/ 中 再修正依頼
  Re: 「JSONデコード」命令で、null があ.. / LSI (2010-12-24 22:55) (#1866)/ 中 再修正依頼
    エンコード、デコード共に不完全 / json (2011-08-25 02:34) (#1937)/ 高 再修正依頼
  開発者向け修正箇所情報 / うぇいく (2012-03-20 05:22) (#1960)/ 高 再修正依頼
  感謝 / クジラ飛行机 (2012-04-06 13:56) (#1962)/ 高 確認待ち
  修正確認 / クジラ (2016-10-07 20:06) (#2660)/ 高 解決

(#1960)へ返信する:

👆お手数ですが、いたずら防止のために、「真夏」の読み方を記入してください。

編集時に使うキーを入力(省略可能)

画像ファイル(最大300KB)を添付可能