2016-04-18 1 views
0

私はこのAS3のコードを持っている:json形式の文字列から特定の情報を取得するにはどうすればよいですか?

var myString:String; 
var request:URLRequest = new URLRequest("http://www.swellmap.co.nz/ajr.php?r=plugin&a=Surfing&s=Anse%20Vata&country=nz&swellmap=1&country=ncd&swellmap=1&_=1460963404274"); 
var loader:URLLoader = new URLLoader(); 

loader.load(request); 
loader.addEventListener(Event.COMPLETE,weatherLoaded); 


function weatherLoaded(e:Event):void{ 
myString = e.target.data; 
    trace(myString); //output is {"tides":"High: 05:40 am (1.32 m); Low: 12:10 pm (0.57 m); High: 06:10 pm (1.19 m); ","seatemp":"27&deg;C","forecastdate":"17h","rating":"<img src='http:\/\/www.swellmap.co.nz\/style\/img\/weathericons\/1r.png' alt='Poor conditions' title='Poor conditions' \/>","rating_class":"<span class='badge badge-important' alt='Poor conditions' title='Poor conditions'>1<\/span>","summary":"<img class='wx-summary' src='http:\/\/www.swellmap.co.nz\/style\/img\/weathericons\/suncloud.png' title='Sunny with some cloud' \/>","title":"Anse Vata","smaplink":"http:\/\/www.swellmap.co.nz\/surfing\/new-caledonia\/anse-vata","vars":{"hs_sw":{"value":"0.4","title":"Swell","unit":"m"},"hs":{"value":"0.6","title":"Wave","unit":"m"},"wface":{"value":"0.8","title":"Set face","unit":"m"},"tp":{"value":"13","title":"Period","unit":"s"},"dpm":{"value":"S","title":"Swell dir","unit":"&#xb0;"},"windma":{"value":"E 12","title":"Wind","unit":"kts"},"gstma":{"value":"16","title":"Gusts","unit":"kts"}}} 
var myData : Object = JSON.parse(e.target.data); 
for each (var s:* in myData) { trace("key:",s,"value:",myData[s]); } 
trace(myData); } 

私の文字列に関する情報の多くを含むされます。 具体的な情報はどのように取ることができますか?

例: 膨らみを取りたい場合(この例では、「0.4m @ 13s」です)。どうすればいい? (目的は、そのようなテキストボックスに表示さにある:

function(searchTheSwell){ 
var swell_AnseVata; 
swell_AnseVata =.... ? 
info_txt.text = swell_AnseVata; 
} 

Thxを

+0

JSON解析がうまくいかない場合は、** [some code](http://stackoverflow.com/a/36686561/2057709)**その情報を抽出する例を追加しました。 –

答えて

1

はちょうどあなたがデータを解析し、デバッガでMYDATAを検討した後にブレークポイントを設定 - あなたは、オブジェクトの構造が表示されます。それとも、オブジェクト全体の構造をトレース:

import mx.utils.ObjectUtil; 
trace(ObjectUtil.toString(myData)); 

をあなたのケースでは、あなたのオブジェクト内のvarのうち、一緒にあなたの文字列を配置する必要があるだろう:

var hs_sw:Object = myData.vars.hs_sw; 
    var tp:Object = myData.vars.tp; 

    trace(hs_sw.value + " " + hs_sw.unit + " @ " + tp.value + " " + tp.unit); 
+0

どこでmx.utils.ObjectUtilを見つけることができますか? ? – user5870211

+0

ああ、Flexでしか利用できません、ごめんなさい。 JSONオブジェクトを解析する関数は次のとおりです。http://krasimirtsonev.com/blog/article/trace-print-json-object-in-as3 – Philarmon

関連する問題