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

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

(#1866) Re: 「JSONデコード」命令で、null があると失敗する - LSI (2010-12-24 22:55) /中 再修正依頼
こんにちは。LSIです。

なでしこのソースコードを読んでいて、怪しいところを見つけたので、報告します。

unit_kabin.pasのJsonObject2PHiValue()のcase文で、
obj.JsonTypeがjson_type_nullの時、nilを返していますが、
これを空のHiValueオブジェクトへのポインタを返すようにすると、
 U D さんが望んでいる動作になりそうな気がします。

JsonObject2PHiValue()でnilを返していることで、
大本の関数sys_json_decode()でもnilを返すので、
戻り値なしの扱いになっているようです。

ただ、Delphiの開発環境を持っておらず、実際に試したわけではないです。
外していたらごめんなさい。

// 現在のcase文
// ここから
  case obj.JsonType of
    json_type_null:     Result := nil;
    json_type_boolean:  Result := hi_newBool(obj.AsBoolean);
    json_type_string:
    // ……
  end;
// ここまで

// 以下のように変更
// ここから
  case obj.JsonType of
    json_type_null:     Result := hi_var_new;
    json_type_boolean:  Result := hi_newBool(obj.AsBoolean);
    json_type_string:
    // ……
  end;
// ここまで

unit_kabin.pas - JsonObject2PHiValue()
http://code.google.com/p/nadesiko/source/browse/trunk/hi_unit/unit_kabin.pas?r=249#104
「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)/ 高 解決

(#1866)へ返信する:

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

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

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