英文:
I can't test jsonobject with "is" in JsonDataObject
问题
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
英文:
Delphi 11.2, Windows 10 x64
I'm using JsonDataObject from https://github.com/ahausladen/JsonDataObjects
I don't understand why I can't test an object to know if it's a TJsonArray
or TJsonObject
like this:
if (arrayValue[0].ObjectValue is TJsonArray) or (arrayValue[0].ObjectValue is TJsonObject) then
答案1
得分: 2
ObjectValue
始终是TJsonObject
,它永远不会是TJsonArray
。就像ArrayValue
始终是TJsonArray
,它永远不会是TJsonObject
。
要知道数组元素的类型,请使用其Typ
属性而不是:
if (arrayValue[0].Typ = jdtArray) or (arrayValue[0].Typ = jdtObject) then
英文:
ObjectValue
is always a TJsonObject
, it can never be a TJsonArray
. Just as ArrayValue
is always a TJsonArray
, it can never be a TJsonObject
.
To know what type an array element is, use its Typ
property instead:
if (arrayValue[0].Typ = jdtArray) or (arrayValue[0].Typ = jdtObject) then
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论