Получите вложенное значение json, используя ASP Classi c и aspJSON - PullRequest
1 голос
/ 01 апреля 2020

Добрый день, я использую aspJSON (https://github.com/rcdmk/aspJSON) для анализа json, который у меня есть ниже:

{
   "pedido":1507WSC,
   "destino":"Brasil",
   "Passageiros":[
      {
         "bilhete":150WDE,
         "valor_seguro":0.0,
         "opcionais_bilhete":[
            {
               "tipo":"OET",
               "codigo":1502,
               "nome":"Esportiva",
               "valor":15.00
            }
         ],
         "codigo":528XCV,
      }
   ],
   "opcionais":null,
   "data_viagem":null
}

Я использую ASP код ниже, чтобы получить некоторую информацию.

Response.LCID = 1043

Dim objVoucher
Dim objJson : Set objJson = New JSONobject

Set objVoucher = objJson.parse(MyJasonTextHere)

Dim Pax

For Each Pax in objVoucher("Passageiros").items
        response.write (Pax.value("bilhete"))
Next

Результат 150WDE . Пока это правильно.

Однако теперь мне нужно получить информацию, содержащуюся в параметре tipo , который содержится в узле opcionais_bilhete .

Я пробовал это несколькими способами, но у меня всегда есть ошибка. Как получить значение из узла, который находится внутри основного json (вложенного json) в classi c asp?

Спасибо.

1 Ответ

1 голос
/ 02 апреля 2020

Расширение моего предыдущего комментария :

Не будет ли использование оператора For Each для l oop через Pax("opcionais_bilhete").items, поскольку это JSONarray объект?

Это работает для меня.

<%
Response.LCID = 1043

Dim objVoucher
Dim objJson : Set objJson = New JSONobject

Set objVoucher = objJson.parse(json)

Dim Pax, Op

For Each Pax in objVoucher("Passageiros").items
  Call Response.Write(Pax.value("bilhete") & "<br />")
  'Loop through the "opcionais_bilhete" JSONarray
  For Each Op in Pax("opcionais_bilhete").items
    Call Response.Write(Op.value("tipo"))
  Next
Next
%>

Вывод:

150WDE
OET
...