こんにちは。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