我无法测试JsonDataObject中的jsonobject是否为”is”。

huangapple go评论66阅读模式
英文:

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

huangapple
  • 本文由 发表于 2023年4月19日 15:34:55
  • 转载请务必保留本文链接:https://go.coder-hub.com/76051838.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定