Я использую классический ASP и ASPJSON (http://www.aspjson.com/), чтобы попытаться пройти через тестовые данные JSON, возвращенные через WebHook Mandrill.Looping через JSON using ASPJSON
Это пример данных JSON - я понимаю, что второй блок совпадает с первым, но мне нужно использовать его, поскольку, когда я это делаю в живой системе, данные webhook будут возвращаться партиями в одном JSON файл/сообщение.
{
"event":"hard_bounce",
"msg":{
"ts":1365109999,
"subject":"This an example webhook message",
"email":"[email protected]",
"sender":"[email protected]",
"tags":[
"webhook-example"
],
"state":"bounced",
"metadata":{
"user_id":111
},
"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa",
"_version":"exampleaaaaaaaaaaaaaaa",
"bounce_description":"bad_mailbox",
"bgtools_code":10,
"diag":"smtp;550 5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipient's email address for typos or unnecessary spaces."
},
"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa",
"ts":1433940242
},
{
"event":"hard_bounce",
"msg":{
"ts":1365109999,
"subject":"This an example webhook message",
"email":"[email protected]",
"sender":"[email protected]",
"tags":[
"webhook-example"
],
"state":"bounced",
"metadata":{
"user_id":111
},
"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa1",
"_version":"exampleaaaaaaaaaaaaaaa",
"bounce_description":"bad_mailbox",
"bgtools_code":10,
"diag":"smtp;550 5.1.1 The email account that you tried to reach does not exist. Please try double-checking the recipient's email address for typos or unnecessary spaces."
},
"_id":"exampleaaaaaaaaaaaaaaaaaaaaaaaaa1",
"ts":1433940242
}
В моей тестовой ASP странице, я попытался простой тест (я уже подтвердил данные в формате JSON является действительным, сохранив его в базу данных и проверки содержания)
<!--#INCLUDE file="aspJSON.asp" -->
str2 = <POST DATA FROM MANDRILL>
Set oJSON = New aspJSON
oJSON.loadJSON(str2)
Response.Write oJSON.data("event") & "<hr>"
response.write "<h1>test</h1>"
For Each phonenr In oJSON.data("msg")
Set this = oJSON.data("msg").item(phonenr)
Response.Write _
this.item("subject") & ": " & _
this.item("diag") & "<br>"
Next
Когда Mandrill называет ASP, он возвращает эту ошибку:
Описание: Объект не коллекция:.
Для этой линии: Для каждого phonenr В oJSON.data («сообщение»)
Я застрял рабочих, как, для каждого события, я могу цикл через него и получить атрибуты из «MSG» и значение «_id».
Этот вопрос уже задан - http://stackoverflow.com/q/30538292/692942. просто ОП не удосужился принять ответ, поэтому я не могу отметить это как дубликат. – Lankymart
@ Lankymart благодарит за ваш ответ. Глядя на другую запись, с которой вы связались, ваш ответ о том, как добраться, в этом примере, PitcherID, должен был спросить, имеет ли OP доступ к управлению структурой JSON. В моем случае у меня нет доступа к этому, поскольку я беру данные прямо из Mandrill. Как это имеет место, есть ли способ получить доступ к данным в двух блоках данных JSON? Спасибо – 4532066
@ Lankymart Для дубликата необходимо либо принять принятый ответ, либо сохранить его. Поэтому, если вы считаете, что ответ на другой вопрос верен, переверните его, а затем отметьте как дубликат. – Dijkgraaf