Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 为什么';通过属性访问字段的行为是否与直接访问字段的行为相同?_Json_Vbscript_Properties - Fatal编程技术网

Json 为什么';通过属性访问字段的行为是否与直接访问字段的行为相同?

Json 为什么';通过属性访问字段的行为是否与直接访问字段的行为相同?,json,vbscript,properties,Json,Vbscript,Properties,我在VBScript中找到了解析JSON的好类。该页面上有一个使用该类的示例。我使用VbsEdit(因为它的智能感知)来处理VBScript。然而,当遵循给出的示例时,我发现名为“data”的公共字段没有出现在建议列表中 此代码可以正常工作,但没有IntelliSense: Addr1 = oJSON.data("ShipToAddress")("AddressLine1")("value") 因此,我将字段设置为私有,并添加了一个公共属性,现在它显示在IntelliSense中: Addr

我在VBScript中找到了解析JSON的好类。该页面上有一个使用该类的示例。我使用VbsEdit(因为它的智能感知)来处理VBScript。然而,当遵循给出的示例时,我发现名为“data”的公共字段没有出现在建议列表中

此代码可以正常工作,但没有IntelliSense:

Addr1 = oJSON.data("ShipToAddress")("AddressLine1")("value")
因此,我将字段设置为私有,并添加了一个公共属性,现在它显示在IntelliSense中:

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

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

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
但是如果我试图访问字典中的任何键,就会出现上面显示的错误


有什么原因我不知道为什么它不能通过属性工作吗?

让我直说,您修改了一个已建立的JSON解析库的行为,因为intellisence在第三方编辑器中不能按预期工作?如果不看到更多的类,很难帮助您,但这个可能会有所不同。这可能与它是一个对象引用有关,需要有一个
属性集JSONdata
以及
属性Get JSONdata
。可能是Lankymart的副本-是的,这就是我正在使用的一个,尽管我从作者的网站上获得了它(链接在我的问题中)。Lankymart-回答你的第一个问题,对我想让IntelliSense与之合作。我没有使用Set属性,因为数据只是从类内部设置的。我现在正在使用编写的类,因为使用该属性它不起作用。我的问题是为什么。