קריאת JSON עם ActionScript 3

כך משתמשים ב-as3corelib ועם JSON כדי ליצור תקשורת עם שרת באמצעות ActionScript 3

JSON, למי שלא מכיר, הוא פורמט נתונים נוח וקל לשימוש שהרבה יותר רזה מ-XML. יותר ויותר שירותים משתמשים ב-XML ולא מזמן יצא לי להשתמש ב-JSON בווידג'ט מבוסס פלאש שיצרתי. זו הזדמנות מצויינת לחלוק עמכם את הדרך שבה ביצעתי את הקריאה ל-JSON ואיך ביצעתי את ה-decoding שלו.

ל-ActionScript 3 אין decoder ל-JSON ולפיכך עלינו להשתמש בספריה חיצונית לשם כך. הבחירה שלי היא as3corelib – ספריה חינמית, אולטרא שימושית שמכילה עוד המון פונקציונליות. יש להוריד אותה מכאן. נפתח אותה ונשמור אותה בתיקית הפרויקט שלנו. אחרי כן ניצור קובץ fla שבו נבצע instance ל-class שלנו.


var myJSON:getMyJSON  = new getMyJSON(this);

ועכשיו ליצירת הקלאס החביב ששמו הוא getMyJSON, בקלאס הזה אני אצור אובייקט, אבצע לו encode על מנת להמיר אותו למחרוזת טקסט, אשלח אותו באמצעות URLRequest לסקריפט קטן ב-PHP שהופך את ה-title (זהה לזה שיש במדריך ה-JSON שלי), אקבל את הפלט, אמיר אותו לאובייקט ואדפיס אותו.

איך זה נראה? ככה:


package {
	import flash.text.*;
	import flash.events.*;
	import flash.net.*;
	import com.adobe.serialization.json.JSON;

	public class getMyJSON {
		
		private var myObj:Object = Object; //My Object
		private var myStage; //My stage
		private var loader:URLLoader; //my URL loader
		
		public function getMyJSON(myStage) { //Constructor
			
			this.myStage = myStage;
			this.myObj.title = "myJsonObject";
			this.myObj.value = "My values";

			var myJSON = JSON.encode(myObj); //encoding my object

			/* send my object to the PHP */
			var request:URLRequest = new URLRequest("https://internet-israel.com/internet_files/JSON/json.php");
			request.method = "GET";
			request.data = 'myJSON='+myJSON;
			loader = new URLLoader(request);
			loader.addEventListener(Event.COMPLETE, completeListener);				
		}
		
		/* event completed */
		private function completeListener(event:Event):void {
			trace("Finished loading. Here is the data: " + loader.data);
			var data:String = loader.data;
			this.myObj = JSON.decode(data);
			this.writeMeDown(this.myObj.title);
			
		}
		/* write it down */
		private function writeMeDown(str:String) {
			var m_myTextField:TextField = new TextField();
			m_myTextField.text = str;
			this.myStage.addChild(m_myTextField);
		}
	}
}

תשמרו ותנסו אותו אצלכם, תראו שהפלט שאתם מקבלים הוא אובייקט שזהה לאובייקט שנשלח – רק ה-title של האובייקט שלכם – הפוך.

בסך הכל זה פשוט מאד, מה שחשוב הוא לכלול את ספרית com.adobe.serialization.json.JSON ולדאוג שהיא תהיה במקום הנכון ואז להשתמש ב-JSON.decode ו-JSON.encode. אחרי כן הכל זה עניין של סמנטיקה.

פוסטים נוספים שכדאי לקרוא

צילום מסך של סוואגר
יסודות בתכנות

openAPI

שימוש בתשתית הפופולרית למיפוי ותיעוד של API וגם הסבר בסיסי על מה זה API

פתרונות ומאמרים על פיתוח אינטרנט

נגישות טכנית – פודקאסט ומבוא

פרק בפודקאסטעל נגישות בעברית שצולל לכלים האוטומטיים ולפן המאד מאד טכני של הנגישות.

DALL·E 2023-10-21 22.28.58 - Photo of a computer server room with red warning lights flashing, indicating a potential cyber threat. Multiple screens display graphs showing a sudde
יסודות בתכנות

מבוא לאבטחת מידע: IDOR

הסבר על התקפה אהובה ומוצלחת שבאמצעותה שואבים מידע מאתרים

גלילה לראש העמוד