为什么通过属性访问字段的行为不像直接访问该字段?

时间:2019-11-19 23:13:08

标签: json vbscript properties

我发现this很好的类用于在VBScript中解析JSON。在该页面上是使用该类的示例。我使用VbsEdit(由于其IntelliSense)来处理VBScript。但是,当按照给出的示例进行操作时,我发现建议列表中没有出现名为“ data”的公共字段。

enter image description here

此代码可以正常运行,但不能使用IntelliSense:

Addr1 = oJSON.data("ShipToAddress")("AddressLine1")("value")

因此,我将该字段设为私有并添加了公共属性,现在该字段显示在IntelliSense中:

enter image description here

但是,现在尝试通过该属性访问数据时出现错误:

Addr1 = oJSON.JSONdata("ShipToAddress")("AddressLine1")("value")
  

Microsoft VBScript运行时错误(7、1):参数数量错误或属性分配无效:'oJSON.JSONdata'

对象类型为Dictionary。所以我尝试了这个:

For Each key In oJSON.JSONdata
    WScript.Echo key
Next

我从JSON字符串中获得了所有顶级密钥:

id
rowNumber
note
Approved
BaseCurrencyID
BillToAddressOverride
BillToContactOverride
CashAccount
ControlTotal
CreditHold
CurrencyID
CurrencyRate
CurrencyRateTypeID
CustomerID
CustomerOrder
Date
Description
DestinationWarehouseID
Details
EffectiveDate
ExternalRef
Hold
IsTaxValid
LastModified
LocationID
NewCard
OrderedQty
OrderNbr
OrderTotal
OrderType
PaymentCardIdentifier
PaymentMethod
PaymentRef
PreAuthorizationNbr
PreAuthorizedAmount
ReciprocalRate
RequestedOn
ShippingSettings
ShipToAddress
ShipToAddressOverride
ShipToContact
ShipToContactOverride
ShipVia
Status
TaxTotal
custom
files

但是,如果我尝试访问字典中的任何键,则会收到上面显示的错误。

我是否有某些原因不知道为什么它不能通过属性工作?

0 个答案:

没有答案