PDA

Просмотр полной версии : JSON


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

<?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 минуты
Всем спасибо сам спросил - сам разобрался. Дабы тема не оставалась незаконченной - вот окончательный вариант кода:
<?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>