/ / Actionscript3 analizando json con un objeto - json, actionscript-3

Actionscript3 analizando json con un objeto - json, actionscript-3

Tengo una aplicación flash donde en una función tengo que analizar un json pasado como un objeto por alguna API externa que no puedo cambiar.

mi json se parece a esto:

 {
"prodotti": [
{
"titolo": "test",
"marca": "",
"modello": "",
"cilindrata": "",
"potenza": "",
"alimentazione": "",
"images": {
"img": [
{
"thumb": "admin/uploads/img_usato/small/qekabw95L5WH1ALf6.jpg",
"big": "admin/uploads/img_usato/big/qekabw95L5WH1ALf6.jpg"
},
{
"thumb": "admin/uploads/img_usato/small/default.jpg",
"big": "admin/uploads/img_usato/big/default.jpg"
}
]
}
},
{
"titolo": "Motore Volvo TAMD 74 C",
"marca": "VOLVO PENTA",
"modello": "TAMD 74 C",
"cilindrata": "7.283 cm3",
"potenza": "331 kW a 2600 rpm",
"alimentazione": "Gasolio",
"images": {
"img": [
{
"thumb": "admin/uploads/img_usato/small/PmQwN4t4yp7P1YCWa.jpg",
"big": "admin/uploads/img_usato/big/PmQwN4t4yp7P1YCWa.jpg"
},
{
"thumb": "admin/uploads/img_usato/small/BWkjTGcy3pDM2LKRs.jpg",
"big": "admin/uploads/img_usato/big/BWkjTGcy3pDM2LKRs.jpg"
}
]
}
}
]
}

Quiero analizar las imágenes dentro del objeto. La API me envía un objeto no astring o json y ahora tengo esta función:

function changeData (prodotto:Object) {
img_container.graphics.clear ();

//here I want to enter and take thumb and big of images!!!
for (var index in prodotto.images.img) {
//trace("index: " + index);
//trace("thumb: " + index.thumb + " big: " + index.big);
}

descrizione.htmlText = prodotto.testo_html;
titolo.text = prodotto.titolo;
alimentazione.text = prodotto.alimentazione;
potenza.text = prodotto.potenza;
cilindrata.text = prodotto.cilindrata;
modello.text = prodotto.modello;
marca.text = prodotto.marca;

}

La función funciona bien, pero no para el bucle for donde intento tomar el control y el pulgar de mi json. ¿Cómo puedo recuperar esta información en este objeto?

Gracias

Respuestas

0 para la respuesta № 1

Creo que hay algo mal con tu forma de ser.configurando la devolución de llamada, pero como no mostró el código de la API, no podemos solucionarlo, además de que usted indicó que no tiene control sobre ella. No importa cuál sea el problema, simplemente no parece correcto.

Junté una función que obtendrá todos los pulgares y pulgares. No dijiste lo contrario.

function changeData (prodotto:Object) {
for each(var item in prodotto.prodotti){
trace("")
//trace(prodotto.testo_html);
trace(item.titolo);
trace(item.alimentazione);
trace(item.potenza);
trace(item.cilindrata);
trace(item.modello);
trace(item.marca);
for each( var imgs in item.images.img) {
trace("thumb",imgs.thumb)
trace("big",imgs.big)
}
}
}

0 para la respuesta № 2

Creo que necesitas usar un analizador JSON. Usa el de este enlace: https://github.com/mikechambers/as3corelib

1: Añade el com carpeta a su directorio de proyectos o agregarlo a su ruta de clase por defecto.

2: Adapta este código a tu gusto. No estoy seguro de cómo está obteniendo un objeto literal de la API. Realmente debería ser solo una cadena a menos que esté usando algún tipo de AMF. Sin importar...

import com.adobe.serialization.json.*;
var data:String = "{"prodotti":[{"titolo":"test","marca":"","modello":"","cilindrata":"","potenza":"","alimentazione":"","images":{"img":[{"thumb":"admin/uploads/img_usato/small/qekabw95L5WH1ALf6.jpg","big":"admin/uploads/img_usato/big/qekabw95L5WH1ALf6.jpg"},{"thumb":"admin/uploads/img_usato/small/default.jpg","big":"admin/uploads/img_usato/big/default.jpg"}]}},{"titolo":"Motore Volvo TAMD 74 C","marca":"VOLVO PENTA","modello":"TAMD 74 C","cilindrata":"7.283 cm3","potenza":"331 kW a 2600 rpm","alimentazione":"Gasolio","images":{"img":[{"thumb":"admin/uploads/img_usato/small/PmQwN4t4yp7P1YCWa.jpg","big":"admin/uploads/img_usato/big/PmQwN4t4yp7P1YCWa.jpg"},{"thumb":"admin/uploads/img_usato/small/BWkjTGcy3pDM2LKRs.jpg","big":"admin/uploads/img_usato/big/BWkjTGcy3pDM2LKRs.jpg"}]}}]}";

function changeData(data)
{
img_container.graphics.clear();
var obj = JSON.decode(data);

for (var i:int = 0; i < obj.prodotti.length; i++)
{
for (var k in obj.prodotti[i].images.img)
{
trace("Thumb:",obj.prodotti[i].images.img[k].thumb);
trace("Big:",obj.prodotti[i].images.img[k].big);
}
descrizione.htmlText    = obj.prodotti[i].testo_html;
titolo.text             = obj.prodotti[i].titolo;
alimentazione.text      = obj.prodotti[i].alimentazione;
potenza.text            = obj.prodotti[i].potenza;
cilindrata.text         = obj.prodotti[i].cilindrata;
modello.text            = obj.prodotti[i].modello;
marca.text              = obj.prodotti[i].marca;
}
}
changeData(data);