delphi 我无法在JsonDataObject中使用“is”测试jsonobject

pprl5pva  于 2023-04-20  发布在  其他
关注(0)|答案(1)|浏览(143)

Delphi 11.2,Windows 10 x64
我正在使用https://github.com/ahausladen/JsonDataObjects中的JsonDataObject
我不明白为什么我不能像这样测试一个对象来知道它是TJsonArray还是TJsonObject

if (arrayValue[0].ObjectValue is TJsonArray) or (arrayValue[0].ObjectValue is TJsonObject) then
lndjwyie

lndjwyie1#

ObjectValue永远是TJsonObject,永远不可能是TJsonArray。就像ArrayValue永远是TJsonArray,永远不可能是TJsonObject一样。
要知道数组元素是什么类型,请使用其Typ属性:

if (arrayValue[0].Typ = jdtArray) or (arrayValue[0].Typ = jdtObject) then

相关问题