Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   JSON (http://www.flasher.ru/forum/showthread.php?t=143215)

Лир 10.08.2010 16:26

JSON
 
Всем доброго времени суток, пытаюсь привинтить Google поиск к Flex. Перечитав всякой-всячины наткнулся на кучу примеров с форматом представления данных JSON. Попытался изобразить задуманную идею и возникла проблема - я вроде бы декодирую результат поиска Googla и сохраняю в объект, только как из этого объекта достать например название найденной странички? Вот пример того что я написал:
Код AS3:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600" >
        <mx:Script>
                <![CDATA[
                        import com.adobe.serialization.json.JSON;
                        import mx.controls.Alert;
                        import mx.rpc.events.ResultEvent;
                        import mx.rpc.http.*;
 
 
                        public var service:HTTPService = new HTTPService();
                        public function serviceSearch():void{
                                service.url = 'http://ajax.googleapis.com/ajax/services/search/web';
                                service.request.v = '1.0';
                                service.request.q = 'Джон Траволта';
                                service.resultFormat = 'text';
                                service.addEventListener(ResultEvent.RESULT, onServerResponse);
                                service.send();
                        }
                        [Bindable]
                        public var json:Object;
                        private function onServerResponse(event:ResultEvent):void {
                                json = JSON.decode(service.lastResult as String);
                                Alert.show(json.toString());
                        }
                ]]>
        </mx:Script>
        <mx:List x="10"
                        creationComplete="serviceSearch()"
                        y="84"
                        width="648"
                        height="287"
                        id="googleResult"
                        dataProvider="{json}">
        </mx:List>
</mx:Application>

Добавлено через 1 час 54 минуты
Всем спасибо сам спросил - сам разобрался. Дабы тема не оставалась незаконченной - вот окончательный вариант кода:
Код AS3:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" minWidth="955" minHeight="600" >
        <mx:Script>
                <![CDATA[
 
 
                        import com.adobe.serialization.json.JSON;
 
                        import mx.controls.Alert;
                        import mx.rpc.events.ResultEvent;
                        import mx.rpc.http.*;
 
                        /*public var googleWebSearch:GoogleWebSearch=new GoogleWebSearch()
                        googleWebSearch.search(txtInput.text,0,lang)
                        googleWebSearch.addEventListener(GoogleSearchEvent.WEB_SEARCH_RESULT,onWebResults);
                        private function onWebResults(e:GoogleSearchEvent):void{
                                for each (var result:GoogleWebItem in e.data as Array){
                                        trace(result.title, result.url)
                                }
                        }*/

                        public var service:HTTPService = new HTTPService();
                        public function serviceSearch():void{
                                service.url = 'http://ajax.googleapis.com/ajax/services/search/web';
                                service.request.v = '1.0';
                                service.request.q = 'Джон Траволта';
                                service.resultFormat = 'text';
                                service.addEventListener(ResultEvent.RESULT, onServerResponse);
                                service.send();
                        }
                        [Bindable]
                        public var json:Object;
                        private function onServerResponse(event:ResultEvent):void {
                                json = JSON.decode(event.result as String).responseData.results;
                                for (var key1:Object in json) {
                                        for (var key2:Object in json[key1])        {
                                                Alert.show(json[key1][key2].toString());
                                        }
                                }
                        }
                ]]>
        </mx:Script>
        <mx:List x="10"
                        creationComplete="serviceSearch()"
                        y="84"
                        width="648"
                        height="287"
                        id="googleResult"
                        >
        </mx:List>
</mx:Application>



Часовой пояс GMT +4, время: 03:09.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.