2013-03-22 3 views
1

Я хочу прочитать или разделить Fiels от моего json. Я могу читать:Чтение JSON (Corona SDK)

local datos = json.decode(event.response) 

print(datos["latitud"]) 
print(datos["longitud"]) 
print(datos["direccion"]) 
print(datos["telefono"]) 
print(datos["fax"]) 
print(datos["servicios"]) 

Но «Servicios» является другой JSON, и я не могу получить свои поля, «нулевой» является ответом, когда я делаю:

for i in pairs(datos) do 
      print(datos["servicios"][servicios][i]) 
end 

экран выхода:

{ 
    "latitud": "39.98008", 
    "longitud": "-0.063171", 
    "direccion": "Ctra. Nacional 340 Km 64,500 - 12006 Castellón de la Plana", 
    "telefono": "964 20 28 38", 
    "fax": "964 34 18 54", 
    "servicios": [ 
     { 
      "servicio": "Acceso al parking" 
     }, 
     { 
      "servicio": "Actividades infantiles" 
     }, 
     { 
      "servicio": "Áreas de descanso" 
     }, 
     { 
      "servicio": "Ascensores" 
     }, 
     { 
      "servicio": "Ascensores adaptados" 
     }, 
     { 
      "servicio": "Aseos exclusivos adaptados" 
     }, 
     { 
      "servicio": "Autobús" 
     }, 
     { 
      "servicio": "Cajeros automáticos" 
     }, 
     { 
      "servicio": "Carritos infantiles" 
     }, 
     { 
      "servicio": "Escaleras" 
     }, 
     { 
      "servicio": "Escaleras mecánicas" 
     }, 
     { 
      "servicio": "Parking gratuito" 
     }, 
     { 
      "servicio": "Plazas de parking adaptadas con doble ancho" 
     }, 
     { 
      "servicio": "Reserva de taxis" 
     }, 
     { 
      "servicio": "Restaurantes especializados en organizar eventos para niños" 
     }, 
     { 
      "servicio": "Sala de lactancia" 
     }, 
     { 
      "servicio": "Servicio atención al cliente" 
     }, 
     { 
      "servicio": "Sillas de ruedas" 
     }, 
     { 
      "servicio": "Teléfonos públicos" 
     } 
    ] 
} 
39.98008  
-0.063171 
Ctra. Nacional 340 Km 64,500 - 12006 Castellón de la Plana 
964 20 28 38  
964 34 18 54  
table: 0x115806ed0 

Я ХОЧУ ОКАЗАТЬСЯ ПОЛЯ И НЕ "стол: 0X115 ...."

СПАСИБО !!!

ответ

1
for _, v in ipairs(datos.servicios) do 
    print(v.servicio) 
end 
1

Ваша логика итерации datos неверна. В вашем коде ваш i меняется для индексов таблицы datos, но вы пытаетесь ссылаться на них на datos["servicios"][servicios], что приводит к nil. Правильное перекручивание будет:

for i in pairs(datos["servicios"]) do 
    print(datos["servicios"][i]) 
end 

или, более просто

for i in pairs(datos.servicios) do 
    print(datos.servicios[i]) 
end