Как получить и передать данные JSON в массивы?[AS3] - PullRequest
2 голосов
/ 13 сентября 2010

поэтому у меня есть JSON-ссылка, содержащая пару узлов (не знаю, как вы их называете в JSON), которые мне нужно поместить в массивы в ActionScript, но у меня все еще возникают проблемы при попытке отследить все конкретные узлыcontent.

Я нашел подобный вопрос здесь , но исправление просто показало, как отследить весь файл JSON (который отображается в моем окне вывода как [объект Object], [объект Object], [объект Object], ...)

первый узел: {"captions":[{"content":"[hello world] ","startTime":0,"duration":4000}

Мой код:

private function onCaptionsComplete( event:Event ):void
    {
        //var jsonObj:Object = JSON.decode(event.target.data);
        //var englishCaptionsObject = jsonObj;
        var englishCaptionsObject:Object = JSON.decode(cc_loader.data);

        captionsContent.push(englishCaptionsObject);
        trace("captionsContent = "+captionsContent);

        for (var i:String in englishCaptionsObject)
        {
            trace(i + ": " +englishCaptionsObject[i]);
            trace(i + ": " +englishCaptionsObject[i].content);
            trace(i + ": " +englishCaptionsObject[i].content[i]);
            trace(i + ": " +englishCaptionsObject[i].startTime[i]);
        }
    }

Когда язапустите его, вот мои следы ниже:

captionsContent = [object Object]
captions: [object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
captions: undefined
TypeError: Error #1010: A term is undefined and has no properties.

То, что я хотел бы сделать, это поместить данные содержимого в массив captionsContent, а startTime - в массив startTime, то же самое с данными продолжительности.

Любые советы?

1 Ответ

2 голосов
/ 14 сентября 2010

В вашем цикле есть ошибка. Вы используете 3 раза переменную i для доступа к трем разностям Object (englishCaptionsObject, content и startTime):

Редактировать : я предположил, что ваш первый декодер уже хорош, но это не так, Ваши подписи Array находятся в поле подписей ваших данных json, содержание и время начала не Array s:

// get the captions array
var captions:Array=englishCaptionsObject.captions;

var cnt:int=0;

// loop throug each caption
for each (var caption:Object in captions) {
     var content:String = caption.content;
     trace(cnt+" "+content);

     var startTime:Number = Number(caption.startTime);
     trace(cnt+" "+startTime);

     cnt++;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...