如何解决如何使用aspJSON.asp从json字符串获取值? 有用链接
我有这个json。而且,无论我尝试什么,我都无法从中获得任何价值? 我不知道我在想什么? 这是json字符串。
{
"groups": [{
"name": "Credit Card","types": ["mc","visa","amex"]
}],"paymentMethods": [{
"brands": ["mc","amex"],"details": [{
"key": "encryptedCardNumber","type": "cardToken"
},{
"key": "encryptedSecurityCode",{
"key": "encryptedExpiryMonth",{
"key": "encryptedExpiryYear",{
"key": "holderName","optional": true,"type": "text"
}],"name": "Card","type": "scheme"
},{
"name": "Få först. Betala sen med Klarna.","supportsRecurring": true,"type": "klarna"
},{
"name": "Trustly","type": "trustly"
},{
"name": "Swish","type": "swish"
},{
"name": "Paysafecard","type": "paysafecard"
},{
"name": "Dela upp med Klarna.","type": "klarna_account"
},{
"name": "Pay now with Klarna.","type": "klarna_paynow"
}]
}
然后,我尝试获取一个单一值(“信用卡”),并遍历所有paymetsMethods.details.key值,然后遍历所有最后一个“名称”。
<!--#include file="aspJSON1.17.asp" -->
jsonstring = CStr(objXmlHttp.ResponseText)
'response.write "---"&jsonstring &"---"
Set oJSON = New aspJSON
oJSON.loadJSON(jsonstring)
groupsname=oJSON.data("groups").item("name")
response.write groupsname
For Each x In oJSON.data("paymentMethods").item("details")
paymentMethods=oJSON.data("paymentMethods").item("details").item("key")
response.write paymentMethods
NEXT
For Each x In oJSON.data("name")
thename=oJSON.data.item("name")
response.write thename
NEXT
我显然缺少什么,但是呢? 任何帮助真的很感激。谢谢。
解决方法
在解析JSON时,如果遇到一个集合(即一个数组),则必须遍历它,然后才能尝试在JSON结构中更深的位置检索值。
在这种情况下,要访问key
属性,必须遍历两个集合。
-
paymentMethods
-
details
所以这个For
循环;
For Each x In oJSON.data("paymentMethods").item("details")
paymentMethods=oJSON.data("paymentMethods").item("details").item("key")
response.write paymentMethods
NEXT
应该更像;
Dim paymentMethod,paymentMethodsItem,details,detailsItem
For Each paymentMethodsItem In oJSON.data("paymentMethods")
Set paymentMethod = oJSON.data("paymentMethods").item(paymentMethodsItem)
For Each detailsItem In paymentMethod.data("details")
Set details = paymentMethod.data("details").item(detailsItem)
Call Response.Write(details.item("key"))
Next
Next
#提供的代码未经测试
有用链接
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。