קריאת 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. אחרי כן הכל זה עניין של סמנטיקה.

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

תמונת תצוגה של מנעול על מחשב
פתרונות ומאמרים על פיתוח אינטרנט

הגנה מפני XSS עם Trusted Types

תכונה ב-CSP שמאפשרת מניעה כמעט הרמטית להתקפות XSS שכל מפתח ווב צריך להכיר וכדאי שיכיר.

מיקרו בקרים

הפעלת מסך oled קטנטן עם esp32

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

תמונה של הבית הלבן עם מחשוב ענן וטקסט: FEDRAMP
פתרונות ומאמרים על פיתוח אינטרנט

FedRAMP & FIPS מבוא למתחילים

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

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

יישום של nonce על מנת להגן מפני התקפות injection

בפוסט הקודם הסברתי על hash עם CSP על משאבי inline – שזה נחמד ומעולה אבל פחות ישים בעולם האמיתי שבו בדרך כלל התוכן ה-inline (בין

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

המנעו מהעלאת source control לשרת פומבי

לא תאמינו כמה אתרים מעלים את ה-source control שלהם לשרת. ככה תמצאו אותם וגם הסבר למה זה רעיון רע.

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