JSON வடிவம்: எடுத்துக்காட்டு மற்றும் விளக்கம். JSON வடிவம்: தரவு உருவாக்கம், PHP மற்றும் JS Json சுருக்கமான டிகோடிங்குடன் பயன்படுத்துதல்

), மற்றும் சேவையகங்களுக்கு இடையில் (HTTP மென்பொருள் இடைமுகங்கள்). தொடர்புடைய தரவுத்தளங்கள் அல்லது கோப்பு தற்காலிக சேமிப்புகளில் சிக்கலான டைனமிக் கட்டமைப்புகளை சேமிப்பதற்கும் JSON வடிவம் மிகவும் பொருத்தமானது.

JSON என்பது ஜாவாஸ்கிரிப்ட் தொடரியல் துணைக்குழு என்பதால், உள்ளமைக்கப்பட்ட eval() செயல்பாட்டைப் பயன்படுத்தி அதை விரைவாக நீக்கலாம். கூடுதலாக, முழு செயல்பாட்டு ஜாவாஸ்கிரிப்ட் செயல்பாடுகளைச் செருகுவது சாத்தியமாகும். PHP இல், பதிப்பு 5.2.0 இல் தொடங்கி, JSON ஆதரவு json_decode() மற்றும் json_encode() செயல்பாடுகளின் வடிவத்தில் மையத்தில் சேர்க்கப்பட்டுள்ளது, அவை JSON தரவு வகைகளை தொடர்புடைய PHP வகைகளுக்கு மாற்றுகின்றன.

தொடரியல்

JSON இரண்டு கட்டமைப்புகளில் கட்டப்பட்டுள்ளது:

  • விசை/மதிப்பு ஜோடிகளின் தொகுப்பு. பல்வேறு மொழிகளில் இது செயல்படுத்தப்படுகிறது ஒரு பொருள், பதிவு , கட்டமைப்பு , அகராதி , ஹாஷ் அட்டவணை , முக்கிய பட்டியல் அல்லது துணை வரிசை . விசை ஒரு சரமாக மட்டுமே இருக்க முடியும், மதிப்பு எந்த வடிவத்திலும் மட்டுமே இருக்க முடியும்.
  • எண்ணிடப்பட்ட மதிப்புகளின் தொகுப்பு. பல மொழிகளில் இது செயல்படுத்தப்படுகிறது வரிசை, திசையன், பட்டியல் அல்லது வரிசை.

இவை உலகளாவிய தரவு கட்டமைப்புகள். கோட்பாட்டில், அனைத்து நவீன நிரலாக்க மொழிகளும் அவற்றை ஒரு வடிவத்தில் அல்லது இன்னொரு வடிவத்தில் ஆதரிக்கின்றன. வெவ்வேறு நிரலாக்க மொழிகளுக்கு இடையில் தரவைப் பரிமாற JSON பயன்படுத்தப்படுவதால், இந்த கட்டமைப்புகளில் அதை உருவாக்குவது அர்த்தமுள்ளதாக இருக்கிறது.

பின்வரும் படிவங்கள் JSON இல் பயன்படுத்தப்படுகின்றன:

  • ஒரு பொருள் என்பது வரிசைப்படுத்தப்படாத பெயர்/மதிப்பு ஜோடிகளின் சுருள் பிரேஸ்களில் ( ) இணைக்கப்பட்ட தொகுப்பாகும். பெயருக்கும் மதிப்புக்கும் இடையில் ஒரு சின்னம் உள்ளது ": " , மற்றும் பெயர்/மதிப்பு ஜோடிகள் காற்புள்ளிகளால் பிரிக்கப்படுகின்றன.
  • ஒரு வரிசை (ஒரு பரிமாணம்) என்பது வரிசை எண்கள் (குறியீடுகள்) கொண்ட மதிப்புகளின் தொகுப்பாகும். வரிசை சதுர அடைப்புக்குறிக்குள் இணைக்கப்பட்டுள்ளது. மதிப்புகள் காற்புள்ளிகளால் பிரிக்கப்படுகின்றன.
  • மதிப்பு இருக்கலாம் வரிஇரட்டை மேற்கோள்களில், எண், மதிப்பு உண்மைஅல்லது பொய், பொருள், வரிசை, அல்லது மதிப்பு ஏதுமில்லை. இந்த கட்டமைப்புகள் ஒருவருக்கொருவர் உள்ளமைக்கப்படலாம்.
  • ஒரு சரம் என்பது பூஜ்ஜியம் அல்லது அதற்கு மேற்பட்ட யூனிகோட் எழுத்துகளின் வரிசைப்படுத்தப்பட்ட தொகுப்பாகும், பின்சாய்வுக்கட்டுப்பாடு தப்பிக்கும் தொடர்களைப் பயன்படுத்தி இரட்டை மேற்கோள்களில் இணைக்கப்பட்டுள்ளது. எழுத்துக்கள் ஒரு எளிய சரமாக குறிப்பிடப்படுகின்றன.
  • பெயர் ஒரு சரம்.

வரிமொழிகள் மற்றும் ஜாவாவில் உள்ள சரத்திற்கு மிகவும் ஒத்திருக்கிறது. எண்சி அல்லது ஜாவா எண்ணுடன் மிகவும் ஒத்திருக்கிறது, தசம வடிவம் மட்டுமே பயன்படுத்தப்படுகிறது. எந்த இரண்டு எழுத்துகளுக்கும் இடையில் இடைவெளிகளை செருகலாம்.

பின்வரும் உதாரணம் ஒரு நபரை விவரிக்கும் ஒரு பொருளின் JSON பிரதிநிதித்துவத்தைக் காட்டுகிறது. பொருள் உண்டு லேசான கயிறுமுதல் மற்றும் கடைசி பெயர் புலங்கள், முகவரியை விவரிக்கும் ஒரு பொருள் மற்றும் தொலைபேசி எண்களின் பட்டியலைக் கொண்ட வரிசை.

( "firstName" : "Ivan" , "last Name" : "Ivanov" , "address" : ( "streetAddress" : "Moskovskoe sh., 101, apt. 101" , "city" : "Leningrad" , "postalCode" : 101101 ) , "ஃபோன் எண்கள்" : [ "812 123-1234" , "916 123-4567" ] )

எக்ஸ்எம்எல்லில், அத்தகைய அமைப்பு இப்படி இருக்கும்:

இவான் இவனோவ் மொஸ்கோவ்ஸ்கோ ஷ்., 101, ஆப். 101 லெனின்கிராட் 101101 812 123-1234 916 123-4567

812 123-1234 916 123-4567

YAML உடன் ஒப்பீடு

செயல்பாட்டு ரீதியாகவும் தொடரியல் ரீதியாகவும், JSON என்பது YAML மொழியின் துணைக்குழு ஆகும். குறிப்பாக, YAML 1.2 விவரக்குறிப்பு "எந்தவொரு JSON கோப்பும் சரியான YAML கோப்பு" என்று கூறுகிறது. மிகவும் பொதுவான YAML பாகுபடுத்தி JSON ஐயும் செயலாக்க முடியும். பதிப்பு 1.2 க்கு முந்தைய YAML விவரக்குறிப்பு JSON ஐ முழுமையாக உள்ளடக்கவில்லை, முதன்மையாக YAML இல் UTF-32 க்கு சொந்த ஆதரவு இல்லாததால், காற்புள்ளிக்கு பிறகு ஒரு இடைவெளி தேவை. கூடுதலாக, JSON விவரக்குறிப்பில் /* */ பாணி கருத்துகள் அடங்கும்.

YAML இல் உள்ள மிக முக்கியமான வேறுபாடு JSON இல் ஒப்புமைகள் இல்லாத தொடரியல் நீட்டிப்புகளின் தொகுப்பாகும்:

தொடர்புடையது: YAML தொடர்புடைய தரவை ஆதரிக்கிறது: YAML ஆவணத்தில், ஒரு கோப்பு/ஸ்ட்ரீமில் முன்பு ஏற்பட்ட ஆங்கரை நீங்கள் குறிப்பிடலாம். சுழல்நிலை கட்டமைப்புகளை இவ்வாறு வெளிப்படுத்தலாம். நீட்டிக்கக்கூடியது: YAML, ஆதிநிலைகளுக்கு அப்பால் நீட்டிக்கக்கூடிய தரவு வகைகளை ஆதரிக்கிறது (அதாவது சரங்கள், எண்கள், பூலியன்கள்). தொகுதிகள்: YAML இல், உள்தள்ளப்பட்ட தொகுதி தொடரியல் கிடைக்கிறது; தேவையற்ற சின்னங்களைப் பயன்படுத்தாமல் கட்டமைக்கப்பட்ட தரவை விவரிக்க இது உங்களை அனுமதிக்கிறது (அனைத்து வகையான அடைப்புக்குறிகள், மேற்கோள்கள் போன்றவை).

JSON திட்டம்

JSON ஆவணத்தின் கட்டமைப்பை விவரிக்கும் மொழிகளில் JSON ஸ்கீமாவும் ஒன்றாகும். JSON தொடரியல் பயன்படுத்துகிறது. எக்ஸ்எம்எல் ஸ்கீமா, ரிலாக்ஸ்என்ஜி, குவாலிஃபை ஆகியவற்றின் கருத்துகளின் அடிப்படையில். JSON ஸ்கீமா என்பது ஒரு சுய-விளக்க மொழி: பயன்படுத்தப்படும் போது, ​​அதே வரிசைப்படுத்தல்/டீரியலைசேஷன் கருவிகள் தரவைச் செயலாக்கவும் அதன் செல்லுபடியை விவரிக்கவும் பயன்படுத்தப்படலாம்.

அஜாக்ஸில் JSON ஐப் பயன்படுத்துகிறது

சேவையகத்திலிருந்து JSON-வடிவமைக்கப்பட்ட பொருளைக் கோருவதற்கு ஒரு உலாவி XMLHttpRequest ஐ எவ்வாறு பயன்படுத்தலாம் என்பதை பின்வரும் ஜாவாஸ்கிரிப்ட் குறியீடு காட்டுகிறது (நிரலின் சேவையகப் பக்கம் தவிர்க்கப்பட்டது; கோரிக்கைகளுக்கு பதிலளிக்கும் வகையில் தரவை JSON சரமாக அனுப்பும் குறியீட்டைக் கொண்டிருக்க வேண்டும். url).

Var the_object; var http_request = புதிய XMLHttpRequest() ; http_request.open("GET", url, true); http_request.send(null); http_request.onreadystatechange = செயல்பாடு () ( என்றால் ( http_request.readyState == 4 ) ( என்றால் ( http_request.status == 200 ) ( the_object = JSON.parse ( http_request.responseText ) ; ) வேறு ( விழிப்பூட்டல் ( "இதில் சிக்கல் உள்ளது URL.") ;) http_request = பூஜ்யம் ;)) ;

XMLHttpRequest ஐப் பயன்படுத்துவதற்கான இந்த எடுத்துக்காட்டு அனைத்து உலாவிகளுக்கும் பொதுவானதல்ல (Internet Explorer, Opera, Safari மற்றும் Mozilla ஐ அடிப்படையாகக் கொண்ட உலாவிகளுக்கு, குறியீட்டில் சில வேறுபாடுகள் இருக்க வேண்டும்). அதே மூலக் கொள்கையின் காரணமாக XMLHttpRequest இன் பயன்பாடு வரம்பிடப்பட்டுள்ளது: கோரிக்கைக்கான பதிலின் URL, பதிலைக் கோரும் பக்கம் அமைந்துள்ள சேவையகத்தின் அதே DNS டொமைனில் இருக்க வேண்டும். ஒரு மாற்று JSONP அணுகுமுறையாகும், இது கிளையன்ட் மற்றும் சர்வர் இடையே அனுப்பப்பட்ட ஒரு குறியிடப்பட்ட செயல்பாட்டு அழைப்பைப் பயன்படுத்துகிறது, இதனால் கிளையன்ட் மூன்றாம் தரப்பு டொமைன்களில் இருந்து JSON-குறியீடு செய்யப்பட்ட தரவை ஏற்ற முடியும், மேலும் இது சில பாதுகாப்பு அபாயங்களை அறிமுகப்படுத்துகிறது. கூடுதல் சேவையக தேவைகள்.

மாற்றாக, பக்கக் குறியீடு JSON தரவை ஒத்திசையாமல் கோருவதற்கு உறுப்புகளைப் பயன்படுத்தலாம் அல்லது வெறுமனே . XMLHttpRequest க்கான பரவலான ஆதரவுக்கு முன் இந்த அணுகுமுறைகள் பொதுவானவை.

டைனமிக் குறிச்சொற்களைப் பயன்படுத்தி JSON தரவை மாற்ற அதே மூலக் கொள்கையைப் பயன்படுத்தலாம், ஆனால் இது பாதிக்கப்படக்கூடிய குறியீட்டை விளைவிக்கிறது. பாதுகாப்பான மாற்றாக, அதைப் பயன்படுத்த பரிந்துரைக்கப்படுகிறது JSON கோரிக்கை.

பாதுகாப்பு கேள்விகள்

JSON ஆனது தரவை வரிசைப்படுத்தப்பட்ட வடிவத்தில் அனுப்ப வடிவமைக்கப்பட்டிருந்தாலும், அதன் தொடரியல் ஜாவாஸ்கிரிப்ட்டின் தொடரியல் பின்பற்றுகிறது மற்றும் இது பல பாதுகாப்பு சிக்கல்களை உருவாக்குகிறது. பெரும்பாலும், JSON வடிவத்தில் வெளிப்புற மூலத்திலிருந்து பெறப்பட்ட தரவை செயலாக்க, eval() செயல்பாடு எந்த பூர்வாங்க சரிபார்ப்பும் இல்லாமல் பயன்படுத்தப்படுகிறது.

ஜாவாஸ்கிரிப்ட் எவல்()

JSON என்பது ஜாவாஸ்கிரிப்ட் குறியீட்டின் வாக்கியரீதியாக சரியான பகுதியாகத் தோன்றுவதால், ஜாவாஸ்கிரிப்ட் நிரலில் JSON தரவை அலசுவதற்கான எளிய வழி, உள்ளமைக்கப்பட்ட JavaScript eval() செயல்பாட்டைப் பயன்படுத்துவதாகும், இது JavaScript வெளிப்பாடுகளை இயக்க வடிவமைக்கப்பட்டுள்ளது. இந்த அணுகுமுறையுடன், கூடுதல் பாகுபடுத்திகளைப் பயன்படுத்த வேண்டிய அவசியமில்லை.

பயன்படுத்தப்படும் JSON தரவின் ஆதாரம் நம்பப்படாவிட்டால், eval() நுட்பமானது கணினியைப் பாதிப்படையச் செய்கிறது ( ஆங்கிலம்) இத்தகைய தரவு குறியீடு ஊசி தாக்குதல்களுக்கான தீங்கிழைக்கும் ஜாவாஸ்கிரிப்ட் குறியீடாக இருக்கலாம் ( ஆங்கிலம்) இந்த பாதிப்பைப் பயன்படுத்தி, தரவைத் திருடுவது மற்றும் அங்கீகாரத்தை உருவாக்குவது சாத்தியமாகும். இருப்பினும், கூடுதல் தரவு சரிபார்ப்பு கருவிகளைப் பயன்படுத்துவதன் மூலம் பாதிப்பை அகற்றலாம். எடுத்துக்காட்டாக, eval() ஐ இயக்கும் முன், வெளிப்புற மூலத்திலிருந்து பெறப்பட்ட தரவை வழக்கமான வெளிப்பாடுகளைப் பயன்படுத்தி சரிபார்க்கலாம். JSON ஐ வரையறுக்கும் RFC, JSON வடிவமைப்பிற்கு இணங்குகிறதா என்பதைச் சரிபார்க்க பின்வரும் குறியீட்டைப் பயன்படுத்த பரிந்துரைக்கிறது

Var my_JSON_object = ! (/[^,:()\[\]0-9.\-+Eaeflnr-u \n\r\t]/ .test ( text.replace (/"(\\.|[^"\\] )*"/g , "" ) ) && eval("(" + text + ")" ) ;

eval()க்கு பாதுகாப்பான மாற்றாக, JSON தரவை மட்டுமே செயலாக்கக்கூடிய புதிய செயல்பாடு, parseJSON(), முன்மொழியப்பட்டது. இது ECMAScript தரநிலையின் பதிப்பு 4 இல் அறிமுகப்படுத்தப்பட்டது மற்றும் "JSON: A Low-Fat Alternative to XML" என்ற கட்டுரையில் விவரிக்கப்பட்டுள்ளது. இது தற்போது ஜாவாஸ்கிரிப்ட் நூலகமாக கிடைக்கிறது மற்றும் ECMAScript இன் ஐந்தாவது பதிப்பில் சேர்க்கப்படும்.

உட்பொதிக்கப்பட்ட JSON

இணைய உலாவிகளின் சமீபத்திய பதிப்புகள் JSON க்கான உள்ளமைக்கப்பட்ட ஆதரவைக் கொண்டுள்ளன, மேலும் eval() செயல்பாட்டை அழைக்காமலேயே அதைச் செயல்படுத்த முடியும், இது விவரிக்கப்பட்ட சிக்கலுக்கு வழிவகுக்கிறது. இந்த வழக்கில் JSON செயலாக்கம் பொதுவாக வேகமாக இருக்கும். எனவே ஜூன் 2009 இல், பின்வரும் உலாவிகள் உள்ளமைக்கப்பட்ட JSON ஆதரவைக் கொண்டிருந்தன:

குறைந்த பட்சம் ஐந்து பிரபலமான ஜாவாஸ்கிரிப்ட் நூலகங்கள் கிடைக்கும்போது இன்லைன் JSON ஐப் பயன்படுத்துகின்றன:

குறுக்கு டொமைன் கோரிக்கை போலியானது

JSON இன் மோசமான பயன்பாடு, குறுக்கு-தள கோரிக்கை மோசடிக்கு (CSRF அல்லது XSRF) தளங்களை பாதிக்கக்கூடியதாக ஆக்குகிறது. குறிச்சொல்லைப் பயன்படுத்தும் அதே டொமைனுக்குச் சொந்தமில்லாத மூலத்தைப் பயன்படுத்த அனுமதிப்பதால், அது தன்னிச்சையான பக்கத்தின் சூழலில் JSON தரவு என்ற போர்வையில் குறியீட்டை செயல்படுத்த அனுமதிக்கிறது, கடவுச்சொற்களை சமரசம் செய்வது அல்லது மற்றொரு தளத்தில் அங்கீகரிக்கப்பட்ட பயனர்களின் மற்ற முக்கியமான தகவல்கள்.

JSON தரவு மூன்றாம் தரப்பினரால் சமரசம் செய்யக்கூடிய முக்கியமான தகவலைக் கொண்டிருந்தால் மற்றும் சேவையகம் ஒற்றை மூலக் கொள்கையை நம்பியிருந்தால் மட்டுமே இது ஒரு பிரச்சனையாகத் தெரிகிறது ( ஆங்கிலம்), வெளிப்புறக் கோரிக்கை கண்டறியப்பட்டால் தரவுக்கான அணுகலைத் தடுக்கிறது. கோரிக்கையின் செல்லுபடியை சர்வர் தீர்மானித்தால், அது சரியாக இருந்தால் மட்டுமே தரவை வழங்கினால் இது ஒரு பிரச்சனையல்ல. இதைத் தீர்மானிக்க HTTP குக்கீகளைப் பயன்படுத்த முடியாது. HTTP குக்கீகளின் பிரத்தியேகமான பயன்பாடு குறுக்கு-தள கோரிக்கை மோசடியால் பயன்படுத்தப்படுகிறது.

JSONP & JSONPP

JSONP (JSON Padding) அல்லது "JSON with padding" என்பது JSON இன் நீட்டிப்பாகும், இது ஒரு கால்பேக் செயல்பாட்டின் பெயர் உள்ளீட்டு வாதமாக குறிப்பிடப்படும் போது.

உலாவியின் பாதுகாப்புக் கொள்கையானது, பக்கம் ஏற்றப்பட்ட சேவையகத்தைத் தவிர மற்ற சேவையகங்களை அணுக குறிச்சொல்லைப் பயன்படுத்த அனுமதிக்கிறது என்ற உண்மையை அடிப்படையாகக் கொண்டது தொழில்நுட்பம்.

JSONP தொழில்நுட்பத்தைப் பயன்படுத்தாமல் (அதாவது, JSON தரவு குறியாக்கத்தைப் பயன்படுத்தி), சேவையகம் தரவை மட்டுமே தர முடியும். உதாரணமாக இது போன்ற:

("தாள்": "A4", "எண்ணிக்கை": 5)

இருப்பினும், இது தரவு மட்டுமே மற்றும் உலாவியை பாதிக்காது.

JSONP நுட்பத்தைப் பயன்படுத்தி, கால்பேக் செயல்பாட்டின் பெயர் அழைப்பு வரிசையில் (GET) மூன்றாம் தரப்பு சேவையகத்திற்கு அனுப்பப்படுகிறது:

இங்கே jsonp அளவுருவானது parseResponse என்ற கால்பேக் செயல்பாட்டின் பெயரைக் கொண்டுள்ளது.

இப்போது வெளிநாட்டு சேவையகம் example.com பின்வரும் குறியீட்டை வழங்கலாம்:

பார்ஸ்ரெஸ்பான்ஸ்(("காகிதம்" : "A4" , "எண்ணிக்கை" : 5 ) )

குறியீடு இப்போது முதல் டொமைனின் ஜாவாஸ்கிரிப்ட் செயல்பாட்டை அழைக்கிறது.

இந்த யோசனை முதலில் 2005 இல் MacPython வலைப்பதிவில் முன்மொழியப்பட்டது, மேலும் தற்போது Dojo Toolkit பயன்பாடுகள், Google Toolkit பயன்பாடுகள் மற்றும் zanox இணைய சேவைகள் போன்ற பல வலை 2.0 பயன்பாடுகளால் பயன்படுத்தப்படுகிறது. S3DB இணைய சேவைகளுக்கான JSONPP இன் ஆதரவு போன்ற கூடுதல் வாதங்களைச் சேர்க்க இந்த நெறிமுறைக்கான கூடுதல் நீட்டிப்புகள் முன்மொழியப்பட்டுள்ளன.

JSONP ஸ்கிரிப்ட் குறிச்சொற்களைப் பயன்படுத்துவதால், அழைப்புகள் முக்கியமாக உலகிற்குத் திறந்திருக்கும். இந்த காரணத்திற்காக, முக்கியமான தரவை சேமிப்பதற்கு JSONP பொருத்தமற்றதாக இருக்கலாம்.

ரிமோட் தளங்களிலிருந்து ஸ்கிரிப்ட் குறிச்சொற்களை இயக்குவது, தளத்தில் எந்த உள்ளடக்கத்தையும் அனுப்ப அனுமதிக்கிறது. ரிமோட் தளத்தில் Javascript உட்செலுத்தலை அனுமதிக்கும் பாதிப்புகள் இருந்தால், அசல் தளமும் அவற்றால் பாதிக்கப்படலாம்.

JSONPP (பேடிங்குடன் கூடிய JSON அளவுருவாக உள்ளது) திணிப்புடன் JSON அளவுருவாக்கப்பட்டது - JSONP யோசனையின் வளர்ச்சி

JSONPP ஆனது மூல URL, JSON தரவை செயலாக்கும் செயல்பாட்டின் பெயர், தரவைப் பெற்ற பிறகு evalக்கான ஒரு வரி மற்றும் தரவைச் செயலாக்கிய பின் evalக்கான ஒரு வரி ஆகியவை அடங்கும்:

JSON_call(SRC, JSONP, JSONPP, ONLOAD) ;

இறுதியில் திரும்புகிறது

பதில் = JSONP(SRC) ( eval(JSONPP(ans) ) ; eval(ONLOAD) ; )

பொதுவாக, JSONPP யோசனைக்கு அளவுருக்களின் எண்ணிக்கை முக்கியமில்லை. JSONPP ஆக SRC, JSONP, JSONPP (மற்றும் சர்வர் பக்கத்திலும் அதன் பிறகு கிளையன்ட் பக்கத்திலும் அவற்றின் செயலாக்கம்) போதுமானது.

S3DB சேவையுடன் பணிபுரியும் உதாரணத்தைப் பார்ப்போம்.

செயல்பாடு s3db_jsonpp_call(src, next_eval) ( var call = "call_" + Math .random () .toString () .replace (/\./g, "" ) ; var headID = document.getElementsByTagName ("head" ) [ 0 ] ; var script = document.createElement ("script") ; script.id = call; script.type = "text/javascript" ; // padded, parameterized json src = src+ "&format=json&jsonp=s3db_jsonpp&jsonpp=" + next_evalp=" + next_ "&onload=remove_element_by_id("" + script.id + "")" ; script.src = src; headID.appendChild (script) ; // பதிலைப் பெறு ) செயல்பாடு s3db_jsonpp(ans, jsonpp) ( eval(jsonpp) ; பதில் பதில் ; ) செயல்பாடு remove_element_by_id(id) (var e = document.getElementById (id) ; e.parentNode .removeChild (e) ; தவறு என்பதைத் திரும்பவும் ; )

எடுத்துக்காட்டில், s3db_jsonpp_call() செயல்பாடு DOM இல் தலைப் பகுதியில் ஒரு ஸ்கிரிப்ட் உறுப்பை உருவாக்குகிறது, இதன் src JSONPP அழைப்புக்கு ஒத்திருக்கிறது.

சேவையகத்திலிருந்து பதிலைப் பெற்ற பிறகு, s3db_jsonpp() அழைக்கப்படும் - இது JSONP விதிகளின்படி இருக்க வேண்டும் என, அழைப்பு அளவுருக்களில் அனுப்பப்படும்.

உள்ளே s3db_jsonpp() eval(jsonpp) சுடப்பட்டு, மதிப்பை வழங்கும்.

eval(onload) ஐ அழைப்பது, தலையில் உருவாக்கப்பட்ட ஸ்கிரிப்ட்டின் ஐடியுடன் remove_element_by_id() ஐ செயல்படுத்துவதற்கும் இறுதியில் அதை நீக்குவதற்கும் வழிவகுக்கிறது, ஏனெனில் எடுத்துக்காட்டில் உள்ள ஐடியின் தொடக்கத்திலேயே தோராயமாக உருவாக்கப்பட்டதால் அது எப்படியும் பயன்படுத்தப்படாது. s3db_jsonpp_call() செயல்பாடு. இந்த அழைப்பு சர்வர் பதிலில் உள்ளது.

பொருள் குறிப்புகள்

JSON தரநிலையானது பொருள் குறிப்புகளை ஆதரிக்காது, ஆனால் டோஜோ டூல்கிட் கூடுதல் மரபுகளைப் பயன்படுத்தி இத்தகைய குறிப்புகளை எவ்வாறு நிலையான JSON ஆதரிக்க முடியும் என்பதை நிரூபிக்கிறது. குறிப்பாக, dojox.json.ref தொகுதியானது வட்ட, பல, இடை-ஆவணம் மற்றும் சோம்பேறி இணைப்புகள் உட்பட பல வகையான இணைப்புகளுக்கு ஆதரவை வழங்குகிறது.

குறிப்புகளையும் பார்க்கவும்
  • YAML ஐன் மார்க்அப் லாங்குவேஜ் (YAML™) பதிப்பு 1.2 (ஆங்கிலம்) . - வேலை வரைவு 2008-05-11.(அணுக முடியாத இணைப்பு - கதை) செப்டம்பர் 24, 2009 இல் பெறப்பட்டது.
  • . RedHanded (07 ஏப்ரல் 2005). செப்டம்பர் 25, 2012 இல் பெறப்பட்டது.
  • Json.Com JSON திட்ட முன்மொழிவு (அணுக முடியாத இணைப்பு - கதை)
  • RFC 4627
  • JSON: XMLக்கு கொழுப்பு இல்லாத மாற்று. காப்பகப்படுத்தப்பட்டது
  • json2.js (ஆங்கிலம்) . பிப்ரவரி 12, 2012 அன்று மூலத்திலிருந்து காப்பகப்படுத்தப்பட்டது. செப்டம்பர் 24, 2009 இல் பெறப்பட்டது.
  • உட்பொதிக்கப்பட்ட JSON ஐப் பயன்படுத்துகிறது.
  • IE8 இல் உட்பொதிக்கப்பட்ட JSON. பிப்ரவரி 12, 2012 அன்று மூலத்திலிருந்து காப்பகப்படுத்தப்பட்டது.
  • Opera Presto 2.5 (ஆங்கிலம்) (மார்ச் 10, 2010) இல் இணைய விவரக்குறிப்புகள் ஆதரிக்கப்படுகின்றன. பிப்ரவரி 12, 2012 அன்று மூலத்திலிருந்து காப்பகப்படுத்தப்பட்டது. மார்ச் 29, 2010 இல் பெறப்பட்டது.
  • JSON பொருளின் ES 3.1 செயல்படுத்தல்.
  • டிக்கெட் #4429lang=en . பிப்ரவரி 12, 2012 அன்று மூலத்திலிருந்து காப்பகப்படுத்தப்பட்டது.
  • டிக்கெட் #4429 (மே 22, 2009). பிப்ரவரி 12, 2012 அன்று மூலத்திலிருந்து காப்பகப்படுத்தப்பட்டது. ஜூலை 3, 2009 இல் பெறப்பட்டது.
  • டிக்கெட் #8111lang=en . பிப்ரவரி 12, 2012 அன்று மூலத்திலிருந்து காப்பகப்படுத்தப்பட்டது.
  • MooTools கோர் மற்றும் பல 1.3.1. பிப்ரவரி 12, 2012 அன்று மூலத்திலிருந்து காப்பகப்படுத்தப்பட்டது.
  • YUI 2: JSON பயன்பாடு (செப்டம்பர் 1, 2009). பிப்ரவரி 12, 2012 அன்று மூலத்திலிருந்து காப்பகப்படுத்தப்பட்டது. அக்டோபர் 22, 2009 இல் பெறப்பட்டது.
  • JSON (ஏப்ரல் 7, 2010) கற்றுக்கொள்ளுங்கள். பிப்ரவரி 12, 2012 அன்று மூலத்திலிருந்து காப்பகப்படுத்தப்பட்டது. ஏப்ரல் 7, 2010 இல் பெறப்பட்டது.
  • ஜெர்மி கிராஸ்மேன் GMail ஐப் பயன்படுத்தி வலை பயன்பாடுகளுக்கு எதிரான மேம்பட்ட தாக்குதல் நுட்பங்கள். WhiteHat பாதுகாப்பு. பிப்ரவரி 12, 2012 அன்று மூலத்திலிருந்து காப்பகப்படுத்தப்பட்டது. செப்டம்பர் 23, 2009 இல் பெறப்பட்டது.
  • __future__ இறக்குமதியிலிருந்து * » ரிமோட் JSON - JSONP . Bob.pythonmac.org. பிப்ரவரி 12, 2012 அன்று மூலத்திலிருந்து காப்பகப்படுத்தப்பட்டது. செப்டம்பர் 8, 2008 இல் பெறப்பட்டது.
  • அல்மேடா, ஜோனாஸ் (ஜூன் 11, 2008). "JSON, JSONP, JSONPP? "(S3DB). 2009-04-26 இல் பெறப்பட்டது.
  • RIAspotகிராஸ் சைட் XHRக்கான JSON P .(அணுக முடியாத இணைப்பு - கதை)
  • டோஜோவில் JSON குறிப்பு. பிப்ரவரி 12, 2012 அன்று மூலத்திலிருந்து காப்பகப்படுத்தப்பட்டது.
  • இணைப்புகள்
    • ரஷ்ய மொழியில் அதிகாரப்பூர்வ வடிவம் முகப்புப் பக்கம்
    • json.js, json2.js என்பது ஜாவாஸ்கிரிப்டில் JSON தரவுகளுடன் பணிபுரிவதற்காக டக்ளஸ் க்ராக்ஃபோர்ட் உருவாக்கிய நூலகமாகும். JSONString முறையுடன் ஒரு பொருளை விரிவுபடுத்துகிறது, அது எந்த பொருளிலும் உள்ளது, மேலும் அதை JSON வடிவமைப்பு சரமாக மாற்றுகிறது.
    • json-rpc.org (ஆங்கிலம்)
    ஆவண மார்க்அப் மொழிகள்அலுவலக ஆவணங்கள்

    JSON அல்லது JavaScript ஆப்ஜெக்ட் நோட்டேஷன் என்பது முக்கிய மதிப்பு ஜோடிகள் மற்றும் வரிசைப்படுத்தப்பட்ட பட்டியல்களின் அடிப்படையில் கட்டமைக்கப்பட்ட தரவின் கட்டமைக்கப்படாத உரை பிரதிநிதித்துவத்தை செயல்படுத்தும் ஒரு வடிவமாகும். JSON ஜாவாஸ்கிரிப்ட் மூலம் உருவானது என்றாலும், இது பெரும்பாலான மொழிகளில், சொந்தமாக அல்லது சிறப்பு நூலகங்களின் உதவியுடன் ஆதரிக்கப்படுகிறது. பொதுவாக Json என்பது இணைய கிளையண்டுகளுக்கும் இணைய சேவையகத்திற்கும் இடையே தகவல்களை பரிமாறிக்கொள்ள பயன்படுகிறது.

    கடந்த 15 ஆண்டுகளில், JSON ஒரு முறையான தரவு பரிமாற்ற தரநிலையாக மாறியுள்ளது மற்றும் இணையத்தில் கிட்டத்தட்ட எல்லா இடங்களிலும் பயன்படுத்தப்படுகிறது. இன்று இது கிட்டத்தட்ட அனைத்து இணைய சேவையகங்களாலும் பயன்படுத்தப்படுகிறது. இந்த பிரபலத்திற்கு மற்றொரு காரணம், பல தரவுத்தளங்கள் JSON ஐ ஆதரித்தது. PostgreSQL மற்றும் MySQL போன்ற நவீன தொடர்புடைய தரவுத்தளங்கள் இப்போது JSON இல் தரவைச் சேமித்து ஏற்றுமதி செய்வதை ஆதரிக்கின்றன. MongoDB மற்றும் Neo4j போன்ற தரவுத்தளங்களும் JSON ஐ ஆதரிக்கின்றன, இருப்பினும் MongoDB JSON இன் சற்று மாற்றியமைக்கப்பட்ட பதிப்பைப் பயன்படுத்துகிறது. இந்த கட்டுரையில், JSON என்றால் என்ன, XML ஐ விட அதன் நன்மைகள், அதன் தீமைகள் மற்றும் எப்போது அதைப் பயன்படுத்துவது சிறந்தது என்பதைப் பார்ப்போம்.

    JSON வடிவம் ஏன் தேவைப்படுகிறது மற்றும் அது எவ்வாறு செயல்படுகிறது என்பதைப் புரிந்து கொள்ள, உங்களுக்கு பயிற்சி தேவை. முதலில் இந்த உதாரணத்தைப் பார்ப்போம்:

    {
    "முதல் பெயர்": "ஜொனாதன்",
    "கடைசிப்பெயர்": "ஃப்ரீமேன்",
    "உள்நுழைவு எண்ணிக்கை": 4,
    "isWriter": உண்மை,
    “WorksWith”: [“Spantree Technology Group”, “InfoWorld”],
    "செல்லப்பிராணிகள்": [
    {
    "பெயர்": "லில்லி",
    "வகை": "ரக்கூன்"
    }
    ]
    }

    இந்த கட்டமைப்பில், ஒரு நபரின் சில பண்புகளை நாங்கள் தெளிவாக வரையறுத்துள்ளோம். முதலில், முதல் பெயர், கடைசி பெயர், கணினியில் உள்ள உள்நுழைவுகளின் எண்ணிக்கை, இந்த நபர் ஒரு எழுத்தாளர், அவர் பணிபுரியும் நிறுவனங்களின் பட்டியல் மற்றும் செல்லப்பிராணிகளின் பட்டியல் ஆகியவற்றை நாங்கள் தீர்மானித்தோம். இது அல்லது இதே போன்ற கட்டமைப்பை சேவையகத்திலிருந்து இணைய உலாவி அல்லது மொபைல் பயன்பாட்டிற்கு மாற்றலாம், பின்னர் இந்தத் தரவைக் கொண்டு தேவையானதைச் செய்யலாம், எடுத்துக்காட்டாக, அதைக் காண்பிக்கலாம் அல்லது சேமிக்கலாம்.

    JSON என்பது குறைந்தபட்ச மதிப்பு வகைகளைக் கொண்ட பொதுவான தரவு வடிவமாகும் - சரங்கள், எண்கள், பூலியன்கள் (ஒன்று அல்லது பூஜ்ஜியம்), பட்டியல்கள், பொருள்கள் மற்றும் பூஜ்யம். JSON ஜாவாஸ்கிரிப்ட்டின் துணைக்குழுவாக இருந்தாலும், மிகவும் பிரபலமான நிரலாக்க மொழிகளில் இந்த வகையான தரவு உள்ளது, இது வெவ்வேறு மொழிகளில் எழுதப்பட்ட நிரல்களுக்கு இடையில் தரவை அனுப்புவதற்கு JSON ஒரு நல்ல வேட்பாளராக உள்ளது.

    நீங்கள் ஏன் JSON ஐப் பயன்படுத்த வேண்டும்?

    JSON இன் பயன் மற்றும் முக்கியத்துவத்தைப் புரிந்து கொள்ள, இணையத்தில் ஊடாடும் வரலாற்றைப் பற்றி நாம் கொஞ்சம் புரிந்து கொள்ள வேண்டும். 2000 களின் முற்பகுதியில், வலைத்தளங்களின் ஊடாடும் தன்மை மாறத் தொடங்கியது. அந்த நேரத்தில், உலாவி தகவல்களைக் காண்பிக்க மட்டுமே சேவை செய்தது, மேலும் இணைய சேவையகம் காட்சிக்கான உள்ளடக்கத்தைத் தயாரிக்கும் அனைத்து வேலைகளையும் செய்தது. ஒரு பயனர் உலாவியில் ஒரு பொத்தானைக் கிளிக் செய்யும் போது, ​​ஒரு கோரிக்கை சேவையகத்திற்கு அனுப்பப்பட்டது, அங்கு ஒரு HTML பக்கம் ஒருங்கிணைக்கப்பட்டு அனுப்பப்பட்டது, காட்ட தயாராக உள்ளது. இந்த பொறிமுறையானது மெதுவாகவும் பயனற்றதாகவும் இருந்தது. தரவின் சிறிய பகுதி மாறினாலும், பக்கத்தில் உள்ள அனைத்தையும் உலாவி மீண்டும் ரெண்டர் செய்ய வேண்டும்.

    அந்த நேரத்தில், பரிமாற்றப்பட்ட தரவின் அடிப்படையில் இடமாற்றங்கள் விதிக்கப்பட்டன, எனவே டெவலப்பர்கள் முழு பக்கத்தையும் மீண்டும் ஏற்றுவது மிகவும் விலை உயர்ந்தது என்பதை உணர்ந்தனர் மற்றும் பயனர் இடைமுகத்தை மேம்படுத்த புதிய தொழில்நுட்பங்களைக் கருதினர். இன்டர்நெட் எக்ஸ்ப்ளோரர் 5 இல் சேர்க்கப்பட்ட பின்னணியில் வலை கோரிக்கைகளை உருவாக்கும் திறன், காட்சிக்கு தரவை அதிகரிக்கும் வகையில் ஏற்றுவதற்கு மிகவும் சாத்தியமான அணுகுமுறையாக மாறியது. பக்கத்தை மீண்டும் ஏற்றுவதற்குப் பதிலாக, பொத்தானைக் கிளிக் செய்வதன் மூலம் பின்னணியில் இயங்கும் ஒரு வலை கோரிக்கையை வழங்கும். உள்ளடக்கம் ஏற்றப்பட்டவுடன் அது புதுப்பிக்கப்படும். உலாவிகளுக்கான உலகளாவிய நிரலாக்க மொழியான ஜாவாஸ்கிரிப்டைப் பயன்படுத்தி இதைக் கட்டுப்படுத்தலாம்.

    ஆரம்பத்தில், தரவு எக்ஸ்எம்எல் வடிவத்தில் மாற்றப்பட்டது, ஆனால் ஜாவாஸ்கிரிப்டில் பயன்படுத்த கடினமாக இருந்தது. ஜாவாஸ்கிரிப்ட் ஏற்கனவே மொழியில் தரவைப் பிரதிநிதித்துவப்படுத்தப் பயன்படுத்தப்படும் பொருள்களைக் கொண்டிருந்தது, எனவே டக்ளஸ் க்ராக்ஃபோர்ட் JS ஆப்ஜெக்ட் தொடரியல் எடுத்து JSON எனப்படும் புதிய தரவு பரிமாற்ற வடிவமைப்பிற்கான விவரக்குறிப்பாகப் பயன்படுத்தினார். ஜாவாஸ்கிரிப்ட் உலாவியில் படிக்கவும் அலசவும் இந்த வடிவம் மிகவும் எளிதாக இருந்தது. விரைவில், டெவலப்பர்கள் XMLக்குப் பதிலாக JSON ஐப் பயன்படுத்தத் தொடங்கினர்.

    இப்போதெல்லாம், வேகமான JSON தரவு பரிமாற்றம் என்பது சர்வர் மற்றும் கிளையன்ட், மொபைல் பயன்பாடுகள் மற்றும் உள் அமைப்பு சேவைகளுக்கு இடையே தரவை மாற்றுவதற்கான நடைமுறை தரநிலையாகும்.

    JSON vs எக்ஸ்எம்எல்

    நான் மேலே கூறியது போல், JSON க்கு முக்கிய மாற்று XML ஆகும். இருப்பினும், புதிய அமைப்புகளில் XML குறைவாகவே காணப்படுகிறது. மற்றும் ஏன் என்று புரிந்து கொள்வது மிகவும் எளிது. XML வழியாக Json இல் நீங்கள் மேலே பார்த்த தரவை எழுதுவதற்கான எடுத்துக்காட்டு கீழே உள்ளது:


    ஜொனாதன்
    ஃப்ரீமேன்
    4
    உண்மை

    ஸ்பான்ட்ரீ தொழில்நுட்பக் குழு
    இன்ஃபோ வேர்ல்ட்

    லில்லி
    ரக்கூன்


    குறியீட்டின் பணிநீக்கத்திற்கு கூடுதலாக, தரவு எழுதுவதற்கு இரண்டு மடங்கு அதிக இடத்தை எடுத்துக் கொண்டது, தரவு கட்டமைப்பை பகுப்பாய்வு செய்யும் போது எக்ஸ்எம்எல் சில தெளிவின்மையையும் அறிமுகப்படுத்துகிறது. XML ஐ ஜாவாஸ்கிரிப்ட் பொருளாக மாற்றுவது பத்தாயிரம் முதல் நூற்றுக்கணக்கான கோடுகள் வரை எடுக்கலாம் மற்றும் ஒவ்வொரு பொருளும் பாகுபடுத்தப்படுவதற்கு நன்றாக டியூனிங் தேவைப்படுகிறது. JSON ஐ ஜாவாஸ்கிரிப்ட் பொருளாக மாற்றுவது ஒரு வரியில் செய்யப்படுகிறது மற்றும் பாகுபடுத்தப்படும் பொருளைப் பற்றி எந்த முன் அறிவும் தேவையில்லை.

    JSON வரம்புகள்

    JSON ஒப்பீட்டளவில் சுருக்கப்பட்ட மற்றும் நெகிழ்வான தரவு வடிவமாக இருந்தாலும், பல நிரலாக்க மொழிகளில் வேலை செய்ய எளிதானது, இது சில குறைபாடுகளைக் கொண்டுள்ளது. இங்கே சில கட்டுப்பாடுகள் உள்ளன:

    • அமைப்பு இல்லை. ஒருபுறம், நீங்கள் விரும்பும் எந்த வகையிலும் தரவை வழங்க உங்களுக்கு முழுமையான நெகிழ்வுத்தன்மை உள்ளது என்று அர்த்தம். மறுபுறம், நீங்கள் கட்டமைக்கப்படாத தரவை எளிதாக சேமிக்க முடியும்.
    • ஒரே ஒரு வகை எண்கள். IEEE-754 மிதக்கும் புள்ளி மற்றும் இரட்டை துல்லிய வடிவம் ஆதரிக்கப்படுகிறது. இது மிகவும் அதிகம், ஆனால் மற்ற மொழிகளில் உள்ள பல்வேறு எண் வகைகளை நீங்கள் பயன்படுத்த முடியாது.
    • தேதி வகை இல்லை. டெவலப்பர்கள் தேதிகளின் சரம் பிரதிநிதித்துவங்களைப் பயன்படுத்த வேண்டும், இது வடிவமைப்பு முரண்பாடுகளை ஏற்படுத்தும். அல்லது யூனிக்ஸ் சகாப்தத்தின் தொடக்கத்திலிருந்து (ஜனவரி 1, 1970) கடந்துவிட்ட மில்லி விநாடிகளின் எண்ணிக்கையை தேதியாகப் பயன்படுத்தவும்.
    • கருத்துகள் இல்லை - குறியீட்டில் நேரடியாக தேவைப்படும் புலங்களை உங்களால் குறிப்பெடுக்க முடியாது.
    • வெர்போஸ் - XML ​​ஐ விட JSON சொற்பொழிவு குறைவாக இருந்தாலும், இது மிகவும் சுருக்கமான தரவு பரிமாற்ற வடிவம் அல்ல. உயர்நிலை அல்லது சிறப்பு சேவைகளுக்கு, நீங்கள் மிகவும் திறமையான வடிவங்களைப் பயன்படுத்த வேண்டும்.
    நீங்கள் எப்போது JSON ஐப் பயன்படுத்த வேண்டும்?

    உலாவி அல்லது சொந்த மொபைல் பயன்பாட்டுடன் தொடர்பு கொள்ளும் மென்பொருளை நீங்கள் உருவாக்குகிறீர்கள் என்றால், நீங்கள் JSON ஐப் பயன்படுத்துவது நல்லது. எக்ஸ்எம்எல் பயன்பாடு நிராகரிக்கப்பட்டது. சேவையகங்களுக்கிடையேயான தகவல்தொடர்புக்கு, JSON மிகவும் திறமையானதாக இருக்காது, மேலும் Apache Avro அல்லது Apache Thrift போன்ற வரிசைப்படுத்தல் கட்டமைப்பைப் பயன்படுத்துவது நல்லது. இங்கேயும் கூட, JSON ஒரு மோசமான தேர்வு அல்ல, மேலும் உங்களுக்குத் தேவையான அனைத்தையும் கொடுக்க முடியும். ஆனால் எதை தேர்வு செய்வது என்பதற்கு சரியான பதில் இல்லை.

    நீங்கள் MySQL தரவுத்தளங்களைப் பயன்படுத்துகிறீர்கள் என்றால், உங்கள் நிரல் தரவுத்தளத்தில் என்ன செய்யப்படுகிறது என்பதைப் பொறுத்தது. JSON ஐ ஆதரிக்கும் தொடர்புடைய தரவுத்தளங்களில், முடிந்தவரை குறைவாகப் பயன்படுத்துவது நல்ல நடைமுறையாகக் கருதப்படுகிறது. தொடர்புடைய தரவுத்தளங்கள் ஒரு குறிப்பிட்ட திட்டத்துடன் தரவுக்காக வடிவமைக்கப்பட்டுள்ளன. அவர்களில் பெரும்பாலோர் இப்போது JSON தரவு வடிவமைப்பை ஆதரித்தாலும், அதனுடன் பணிபுரியும் செயல்திறன் கணிசமாகக் குறைவாக இருக்கும்.

    முடிவுரை

    JSON என்பது முதன்மையாக இணைய சேவையகங்கள் மற்றும் உலாவிகள் அல்லது மொபைல் பயன்பாடுகளுக்கு இடையே தரவை அனுப்புவதை நோக்கமாகக் கொண்ட தரவு வடிவமாகும். வடிவம் எளிமையான வடிவமைப்பு மற்றும் நெகிழ்வுத்தன்மையைக் கொண்டுள்ளது, அதைப் படிக்கவும் புரிந்துகொள்ளவும் எளிதானது, மேலும் பெரும்பாலான நிரலாக்க மொழிகளில் அத்தகைய தரவுகளுடன் வேலை செய்வது எளிது. கடுமையான ஸ்கீமா இல்லாதது வடிவமைப்பில் நெகிழ்வுத்தன்மையை அனுமதிக்கிறது, ஆனால் இந்த நெகிழ்வுத்தன்மை சில நேரங்களில் தரவைப் படிக்கவும் புரிந்துகொள்ளவும் கடினமாக்குகிறது.

    Scala அல்லது Elm போன்ற வலுவாக தட்டச்சு செய்யப்பட்ட மொழிகளில் JSON உடன் பணிபுரிவது உங்களுக்கு கடினமாக இருக்கலாம், ஆனால் இந்த வடிவமைப்பின் பரவலான தத்தெடுப்பு என்பது சிக்கலான சிக்கல்களுக்கு கூட உதவுவதற்கு பயன்பாடுகள் மற்றும் நூலகங்கள் உள்ளன என்பதாகும். json என்றால் என்ன, அதை எப்படி பயன்படுத்துவது என்பது இப்போது உங்களுக்குத் தெரியும்.

    JSON என்றால் என்ன, அது என்ன செய்ய முடியும்? இந்த கட்டுரையில், தரவுகளுடன் எளிதாக வேலை செய்ய JSON ஐ எவ்வாறு பயன்படுத்துவது என்பதை நீங்கள் கற்றுக் கொள்வீர்கள். PHP மற்றும் JavaScript ஐப் பயன்படுத்தி JSON உடன் எவ்வாறு வேலை செய்வது என்பதையும் பார்ப்போம்.

    நீங்கள் பொதுவாக இணையதளங்கள் அல்லது இணையப் பயன்பாடுகளை உருவாக்கியிருந்தால், குறைந்தபட்சம் கடந்து சென்றாலும் JSON பற்றி கேள்விப்பட்டிருக்க வாய்ப்புகள் உள்ளன. ஆனால் JSON சரியாக என்ன அர்த்தம்? இந்த தரவு வடிவம் என்ன செய்ய முடியும் மற்றும் அதை எவ்வாறு பயன்படுத்தலாம்?

    இந்த கட்டுரையில் நாம் json வடிவமைப்பில் வேலை செய்வதற்கான அடிப்படைகளை கற்றுக்கொள்வோம். பின்வரும் தலைப்புகளைப் பின்பற்றுவோம்:

    • JSON வடிவம் என்றால் என்ன?
    • JSON சரங்களை எவ்வாறு உருவாக்குவது?
    • JSON தரவின் எளிய உதாரணம்
    • XML உடன் JSON ஐ ஒப்பிடுதல்

    ஆரம்பிக்கலாம்!

    JSON வடிவம் என்றால் என்ன?

    JSON என்பது கட்டமைக்கப்பட்ட தரவைச் சேமித்து அனுப்புவதற்கான எளிய, உரை அடிப்படையிலான வழியாகும். ஒரு எளிய தொடரியல் பயன்படுத்தி, நீங்கள் எளிய எண்கள் மற்றும் சரங்கள் இரண்டையும் எளிதாக சேமிக்க முடியும், அதே போல் வரிசைகள் மற்றும் பொருள்கள், உரையைத் தவிர வேறு எதையும் பயன்படுத்தாது. நீங்கள் பொருள்கள் மற்றும் வரிசைகளை இணைக்கலாம், இது சிக்கலான தரவு கட்டமைப்புகளை உருவாக்க உங்களை அனுமதிக்கிறது.

    JSON சரம் உருவாக்கப்பட்டவுடன், அது வெறும் உரையாக இருப்பதால், எந்தப் பயன்பாடு அல்லது கணினிக்கும் எளிதாக அனுப்ப முடியும்.

    JSON பல நன்மைகளைக் கொண்டுள்ளது:

    • இது கச்சிதமானது
    • இது மனிதர்களால் படிக்கக்கூடியது மற்றும் கணினிகளால் படிக்க எளிதானது
    • இதை எளிதாக மென்பொருள் வடிவங்களாக மாற்றலாம்: எண் மதிப்புகள், சரங்கள், பூலியன் வடிவம், பூஜ்ய மதிப்பு, அணிவரிசைகள் மற்றும் துணை அணிவரிசைகள்.
    • கிட்டத்தட்ட அனைத்து நிரலாக்க மொழிகளும் json தரவு வடிவமைப்பைப் படிக்கவும் உருவாக்கவும் அனுமதிக்கும் செயல்பாடுகளைக் கொண்டுள்ளன.

    உண்மையில், JSON என்ற சுருக்கமானது ஜாவாஸ்கிரிப்ட் ஆப்ஜெக்ட் நோட்டேஷனைக் குறிக்கிறது. முன்பு விவரிக்கப்பட்டபடி, இந்த வடிவம் பொருள்களை உருவாக்குவதை அடிப்படையாகக் கொண்டது, இது பிற நிரலாக்க மொழிகளில் உள்ள துணை வரிசைகளைப் போன்றது.

    JSON என்ன நோக்கங்களுக்காகப் பயன்படுத்தப்படுகிறது?

    எல்லாவற்றிற்கும் மேலாக, json என்பது ஜாவாஸ்கிரிப்ட் மற்றும் சர்வர் பக்கத்திற்கு (php) இடையே தரவை பரிமாறிக்கொள்ள பயன்படுகிறது. வேறு வார்த்தைகளில் கூறுவதானால், அஜாக்ஸ் தொழில்நுட்பத்திற்காக. நீங்கள் பல மாறிகள் அல்லது முழு தரவு வரிசைகளையும் கடந்து செல்லும் போது இது மிகவும் வசதியானது.

    ஒரு எடுத்துக்காட்டில் இது எப்படி இருக்கிறது என்பது இங்கே:

  • பயனர் சிறுபடத்தில் கிளிக் செய்கிறார்
  • ஜாவாஸ்கிரிப்ட் இந்த நிகழ்வைச் செயலாக்குகிறது மற்றும் PHP ஸ்கிரிப்ட்டுக்கு அஜாக்ஸ் கோரிக்கையை அனுப்புகிறது, பட ஐடியை அனுப்புகிறது.
  • சர்வரில், php படத்தின் விளக்கம், படத்தின் பெயர், பெரிய படத்தின் முகவரி மற்றும் தரவுத்தளத்திலிருந்து பிற தகவல்களைப் பெறுகிறது. அதைப் பெற்ற பிறகு, அதை JSON வடிவத்திற்கு மாற்றி பயனரின் பக்கத்திற்கு திருப்பி அனுப்புகிறது.
  • ஜாவாஸ்கிரிப்ட் JSON வடிவத்தில் பதிலைப் பெறுகிறது, தரவை செயலாக்குகிறது, html குறியீட்டை உருவாக்குகிறது மற்றும் ஒரு விரிவான படத்தை விளக்கத்துடன் மற்ற தகவலுடன் காண்பிக்கும்.
  • உலாவியில் பக்கத்தை மீண்டும் ஏற்றாமல் படம் பெரிதாக்கப்படுவது இதுதான். பகுதியளவு தரவைப் பெற அல்லது சேவையகத்திற்கு ஒரு சிறிய அளவிலான தகவலை மாற்ற வேண்டியிருக்கும் போது இது மிகவும் வசதியானது.

    அனைவருக்கும் பிடித்த jQuery ஆனது getJSON() மற்றும் parseJSON() செயல்பாடுகளைக் கொண்டுள்ளது, இது அஜாக்ஸ் கோரிக்கைகள் மூலம் வடிவமைப்பில் வேலை செய்ய உதவுகிறது.

    JSON சரங்களை எவ்வாறு உருவாக்குவது?


    JSON சரங்களை உருவாக்குவதற்கான அடிப்படை விதிகள் கீழே உள்ளன:

    • JSON சரம் மதிப்புகளின் வரிசை மற்றும் ஒரு பொருள் (பெயர்/மதிப்பு ஜோடிகளுடன் ஒரு துணை வரிசை) இரண்டையும் கொண்டுள்ளது.
    • வரிசையானது சதுர அடைப்புக்குறிக்குள் மூடப்பட்டிருக்க வேண்டும், [மற்றும்] மற்றும் கோமாவால் பிரிக்கப்பட்ட மதிப்புகளின் பட்டியலைக் கொண்டிருக்கலாம்.
    • பொருள்கள் சுருள் கைகளைப் பயன்படுத்தி மூடப்பட்டிருக்கும், (மற்றும் ), மேலும் கோமாவால் பிரிக்கப்பட்ட பெயர்/மதிப்பு ஜோடிகளையும் கொண்டிருக்கும்.
    • பெயர்/மதிப்பு ஜோடிகள் புலத்தின் பெயரைத் தொடர்ந்து (:) ஒரு பெருங்குடலைத் தொடர்ந்து புலத்தின் பெயரை (இரட்டை மேற்கோள்களில்) கொண்டிருக்கும்.
    • ஒரு வரிசை அல்லது பொருளில் உள்ள மதிப்புகள்:
      • எண் (முழு எண் அல்லது புள்ளியிட்ட பின்னம்)
      • சரங்கள் (இரட்டை மேற்கோள்களில் மூடப்பட்டிருக்கும்)
      • பூலியன் (உண்மை அல்லது பொய்)
      • பிற அணிவரிசைகள் (சதுர அடைப்புக்குறிக்குள் சுற்றப்பட்டவை [மற்றும் ])
      • பிற பொருள்கள் (சுருள் கரங்களால் மூடப்பட்டிருக்கும் (மற்றும்))
      • பூஜ்ய மதிப்பு

    முக்கியமான! நீங்கள் மதிப்புகளில் இரட்டை மேற்கோள்களைப் பயன்படுத்தினால், பின்சாய்வு மூலம் அவற்றைத் தவிர்க்கவும்: \". மற்ற நிரலாக்க மொழிகளில் நீங்கள் செய்வது போல் ஹெக்ஸ் குறியாக்கம் செய்யப்பட்ட எழுத்துக்களையும் பயன்படுத்தலாம்.

    JSON தரவின் எளிய உதாரணம்

    JSON வடிவமைப்பைப் பயன்படுத்தி ஆன்லைன் ஸ்டோரின் “கார்ட்டில்” தரவை எவ்வாறு சேமிக்கலாம் என்பதை பின்வரும் எடுத்துக்காட்டு காட்டுகிறது:

    ("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [மின்னஞ்சல் பாதுகாக்கப்பட்டது]", "உள்ளடக்கங்கள்": [ ( "தயாரிப்பு ஐடி": 34, "தயாரிப்பு பெயர்": "சூப்பர் விட்ஜெட்", "அளவு": 1 ), ( "தயாரிப்பு ஐடி": 56, "தயாரிப்பு பெயர்": "வொண்டர்விட்ஜெட்", "அளவு": 3 ) ], "ஆர்டர் முடிந்தது": உண்மை )

    இந்தத் தரவைத் துண்டு துண்டாகப் பிரிப்போம்:

  • ஆரம்பத்திலும் முடிவிலும் இது ஒரு பொருள் என்பதை தெளிவுபடுத்த சுருள் ஆயுதங்களை (மற்றும்) பயன்படுத்துகிறோம்.
  • பொருளின் உள்ளே பல பெயர்/மதிப்பு ஜோடிகள் உள்ளன:
  • "orderID": 12345 - ஆர்டர்ஐடி என்ற புலம் மற்றும் மதிப்பு 12345
  • "shopperName": "John Smith" - புலம் பெயர் ஷாப்பர் பெயர் மற்றும் மதிப்பு ஜான் ஸ்மித்
  • "shopperEmail": "johnsmith@ example.com" - முந்தைய புலத்தைப் போலவே, வாங்குபவரின் மின்னஞ்சல் இங்கே சேமிக்கப்படுகிறது.
  • "உள்ளடக்கங்கள்": [ ... ] - ஒரு வரிசையின் மதிப்பு உள்ளடக்கம் என்று பெயரிடப்பட்ட புலம்.
  • "orderCompleted": true - மதிப்பு உண்மையாக இருக்கும் orderCompleted என்ற புலம்
  • உள்ளடக்க வரிசையின் உள்ளே, வண்டியின் உள்ளடக்கங்களைக் காண்பிக்கும் இரண்டு பொருள்கள் எங்களிடம் உள்ளன. ஒவ்வொரு தயாரிப்பு பொருளுக்கும் மூன்று பண்புகள் உள்ளன: தயாரிப்பு ஐடி, தயாரிப்பு பெயர், அளவு.
  • இறுதியாக, JSON ஜாவாஸ்கிரிப்டில் உள்ள பொருள்களுக்கு ஒத்ததாக இருப்பதால், நீங்கள் எளிதாக இந்த உதாரணத்தை எடுத்து அதிலிருந்து ஒரு ஜாவாஸ்கிரிப்ட் பொருளை உருவாக்கலாம்:

    var cart = ("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [மின்னஞ்சல் பாதுகாக்கப்பட்டது]", "உள்ளடக்கங்கள்": [ ( "தயாரிப்பு ஐடி": 34, "தயாரிப்பு பெயர்": "சூப்பர் விட்ஜெட்", "அளவு": 1 ), ( "தயாரிப்பு ஐடி": 56, "தயாரிப்பு பெயர்": "வொண்டர்விட்ஜெட்", "அளவு": 3 ) ], "orderCompleted": true );

    XML உடன் JSON ஐ ஒப்பிடுதல்

    பெரும்பாலான சந்தர்ப்பங்களில், XML க்கு மாற்றாக JSON ஐ நீங்கள் நினைப்பீர்கள் - குறைந்தபட்சம் இணைய பயன்பாடுகளுக்குள். அஜாக்ஸ் கான்செப்ட் முதலில் XML ஐ சர்வர் மற்றும் பிரவுசருக்கு இடையில் தரவைப் பரிமாற பயன்படுத்துகிறது, ஆனால் சமீபத்திய ஆண்டுகளில் JSON ஆனது அஜாக்ஸ் தரவை அனுப்புவதில் மிகவும் பிரபலமாகிவிட்டது.

    XML என்பது பல பயன்பாடுகளால் பயன்படுத்தப்படும் முயற்சித்த மற்றும் சோதிக்கப்பட்ட தொழில்நுட்பம் என்றாலும், JSON வடிவமைப்பின் நன்மைகள் இது மிகவும் கச்சிதமானது மற்றும் எழுதுவதற்கும் படிப்பதற்கும் எளிதானது.

    மேலே உள்ள JSON உதாரணம், XML வடிவத்தில் மட்டுமே மீண்டும் எழுதப்பட்டது:

    ஆர்டர்ஐடி 12345 கடைக்காரர் பெயர் ஜான் ஸ்மித் கடைக்காரர் மின்னஞ்சல் [மின்னஞ்சல் பாதுகாக்கப்பட்டது]உள்ளடக்கங்கள் தயாரிப்பு ஐடி 34 தயாரிப்பு பெயர் சூப்பர் விட்ஜெட் அளவு 1 தயாரிப்பு ஐடி 56 தயாரிப்பு பெயர் வொண்டர்விட்ஜெட் அளவு 3 ஆர்டர் முடிந்தது உண்மை

    நீங்கள் பார்க்க முடியும் என, இது JSON ஐ விட பல மடங்கு நீளமானது. உண்மையில், இந்த எடுத்துக்காட்டு 1128 எழுத்துக்கள் நீளமானது, JSON பதிப்பு 323 எழுத்துகள் மட்டுமே. எக்ஸ்எம்எல் பதிப்பையும் படிக்க கடினமாக உள்ளது.

    இயற்கையாகவே, ஒரு உதாரணம் மூலம் மட்டுமே மதிப்பிட முடியாது, ஆனால் சிறிய அளவிலான தகவல்கள் கூட XML ஐ விட JSON வடிவத்தில் குறைவான இடத்தைப் பிடிக்கும்.

    PHP மற்றும் JS வழியாக JSON உடன் வேலை செய்வது எப்படி?

    இப்போது நாம் மிகவும் சுவாரஸ்யமான பகுதிக்கு வருகிறோம் - JSON வடிவமைப்பின் நடைமுறை பக்கம். முதலில், ஜாவாஸ்கிரிப்ட்டுக்கு அஞ்சலி செலுத்துவோம், பிறகு PHP மூலம் JSON ஐ எவ்வாறு கையாளலாம் என்று பார்ப்போம்.

    JavaScript ஐப் பயன்படுத்தி JSON வடிவமைப்பை உருவாக்குதல் மற்றும் படித்தல்


    JSON வடிவம் எளிமையானது என்றாலும், இணைய பயன்பாடுகளை உருவாக்கும்போது கைமுறையாக எழுதுவது கடினம். மேலும், நீங்கள் அடிக்கடி JSON சரங்களை மாறிகளாக மாற்ற வேண்டும், பின்னர் அவற்றை உங்கள் குறியீட்டில் பயன்படுத்த வேண்டும்.

    அதிர்ஷ்டவசமாக, பல நிரலாக்க மொழிகள் JSON சரங்களுடன் வேலை செய்வதற்கான கருவிகளை வழங்குகின்றன. இதில் முக்கிய யோசனை:

    JSON சரங்களை உருவாக்க, நீங்கள் சில மதிப்புகளைக் கொண்ட மாறிகளுடன் தொடங்கவும், பின்னர் தரவை JSON சரமாக மாற்றும் செயல்பாட்டின் மூலம் அவற்றை அனுப்பவும்.

    JSON சரங்களைப் படிக்கும்போது, ​​நீங்கள் குறிப்பிட்ட தரவைக் கொண்ட JSON சரத்துடன் தொடங்குகிறீர்கள், தரவைக் கொண்ட மாறிகளை உருவாக்கும் செயல்பாட்டின் மூலம் சரத்தை அனுப்பவும்.

    ஜாவாஸ்கிரிப்ட்டில் இதை எப்படி செய்வது என்று பார்க்கலாம்.

    JavaScript மாறியிலிருந்து JSON சரத்தை உருவாக்குதல்

    JavaScript ஆனது JSON.stringify() என்ற உள்ளமைக்கப்பட்ட முறையைக் கொண்டுள்ளது, இது ஜாவாஸ்கிரிப்ட் மாறியை எடுத்து, மாறியின் உள்ளடக்கங்களைக் குறிக்கும் json சரத்தை வழங்குகிறது. எடுத்துக்காட்டாக, முன்பு உருவாக்கப்பட்ட பொருளைப் பயன்படுத்தி அதை JSON சரமாக மாற்றுவோம்.

    var cart = ("orderID": 12345, "shopperName": "John Smith", "shopperEmail": " [மின்னஞ்சல் பாதுகாக்கப்பட்டது]", "உள்ளடக்கங்கள்": [ ( "தயாரிப்பு ஐடி": 34, "தயாரிப்பு பெயர்": "சூப்பர் விட்ஜெட்", "அளவு": 1 ), ( "தயாரிப்பு ஐடி": 56, "தயாரிப்பு பெயர்": "வொண்டர்விட்ஜெட்", "அளவு": 3 ) ], "orderCompleted": true ); எச்சரிக்கை (JSON.stringify(cart));

    இது திரையில் தோன்றும்:

    ("orderID":12345,"shopperName":"John Smith","shopperEmail":" [மின்னஞ்சல் பாதுகாக்கப்பட்டது]", "உள்ளடக்கங்கள்":[("தயாரிப்பு ஐடி":34,"தயாரிப்பு பெயர்":"சூப்பர் விட்ஜெட்", "அளவு":1), ("தயாரிப்பு ஐடி":56,"தயாரிப்பு பெயர்":"வொண்டர்விட்ஜெட்", "அளவு":3) ], "ஆர்டர் முடிந்தது": உண்மை)

    JSON.stringify() JSON சரங்களை இடைவெளிகள் இல்லாமல் வெளியிடுகிறது என்பதை நினைவில் கொள்ளவும். படிக்க கடினமாக உள்ளது, ஆனால் இது மிகவும் கச்சிதமானது, இது தரவை அனுப்பும் போது முக்கியமானது.

    JSON சரத்திலிருந்து ஜாவாஸ்கிரிப்ட் மாறியை உருவாக்குதல்

    JSON சரங்களை அலசுவதற்கு பல வழிகள் உள்ளன, JSON.parse() முறையைப் பயன்படுத்துவது மிகவும் ஏற்றுக்கொள்ளக்கூடியது மற்றும் பாதுகாப்பானது. இது JSON சரத்தை எடுத்து, JSON தரவைக் கொண்ட ஜாவாஸ்கிரிப்ட் பொருள் அல்லது வரிசையை வழங்குகிறது. இங்கே ஒரு உதாரணம்:

    var jsonString = " \ ( \ "orderID": 12345, \ "shopperName": "John Smith", \ "shopperEmail": " [மின்னஞ்சல் பாதுகாக்கப்பட்டது]", \ "உள்ளடக்கங்கள்": [ \ ( \ "productID": 34, \ "productName": "SuperWidget", \ "quantity": 1 \), \ ( \ "productID": 56, \ "productName": " WonderWidget", \"quantity": 3\ ) \ ], \"orderCompleted": true \ ) \"; var கார்ட் = JSON.parse(jsonString); எச்சரிக்கை(cart.shopperEmail); எச்சரிக்கை (cart.contents.productName);

    இங்கே நாம் jsonString என்ற மாறியை உருவாக்கியுள்ளோம், இதில் JSON சரம் உள்ளது. கார்ட் மாறியில் சேமிக்கப்பட்ட JSON தரவைக் கொண்ட ஒரு பொருளை உருவாக்க JSON.parse() மூலம் இந்த சரத்தை அனுப்பினோம். இறுதியாக, நாங்கள் தரவு இருப்பை சரிபார்த்து, எச்சரிக்கை மாதிரி சாளரத்தைப் பயன்படுத்தி சில தகவல்களைக் காண்பிக்கிறோம்.

    பின்வரும் தகவல்கள் காட்டப்படும்:

    உண்மையான வலைப் பயன்பாட்டில், உங்கள் ஜாவாஸ்கிரிப்ட் குறியீடு, சேவையகத்திலிருந்து ஒரு JSON சரத்தை (AJAX கோரிக்கையை அனுப்பிய பிறகு) பெற வேண்டும், பின்னர் சரத்தை அலசவும் மற்றும் கார்ட்டின் உள்ளடக்கங்களை பயனருக்குக் காண்பிக்கவும்.

    PHP ஐப் பயன்படுத்தி JSON வடிவமைப்பை உருவாக்கி படிக்கவும்

    ஜாவாஸ்கிரிப்ட் போன்ற PHP ஆனது, மாறிகளை JSON வடிவத்திற்கு மாற்ற உங்களை அனுமதிக்கும் செயல்பாடுகளைக் கொண்டுள்ளது, மேலும் நேர்மாறாகவும். அவற்றைப் பார்ப்போம்.

    PHP மாறியிலிருந்து JSON சரத்தை உருவாக்குதல்

    Json_encode() ஒரு PHP மாறியை எடுத்து, மாறியின் தரவைக் குறிக்கும் JSON சரத்தை வழங்குகிறது. PHP இல் எழுதப்பட்ட "வண்டி"க்கான எங்கள் எடுத்துக்காட்டு இங்கே:

    இந்தக் குறியீடு ஜாவாஸ்கிரிப்ட் உதாரணத்தின் அதே முடிவைத் தருகிறது - மாறிகளின் உள்ளடக்கங்களைக் குறிக்கும் சரியான JSON சரம்:

    ("orderID":12345,"shopperName":"John Smith","shopperEmail":" [மின்னஞ்சல் பாதுகாக்கப்பட்டது]","உள்ளடக்கங்கள்":[("தயாரிப்பு ஐடி":34,"தயாரிப்பு பெயர்":"சூப்பர் விட்ஜெட்", "அளவு":1),("தயாரிப்பு ஐடி":56,"தயாரிப்பு பெயர்":"வொண்டர்விட்ஜெட்","அளவு":3) ],"ஆர்டர் முடிந்தது":உண்மை)

    உண்மையில், உங்கள் PHP ஸ்கிரிப்ட் AJAX கோரிக்கைக்கு பதில் JSON சரத்தை அனுப்ப வேண்டும், அங்கு ஜாவாஸ்கிரிப்ட் JSON.parse() ஐ பயன்படுத்தி சரத்தை மாறிகளாக மாற்றும்.

    json_encode() செயல்பாட்டில், நீங்கள் சில எழுத்துக்களை ஹெக்ஸாக மாற்ற அனுமதிக்கும் கூடுதல் அளவுருக்களைக் குறிப்பிடலாம்.

    JSON சரத்திலிருந்து PHP மாறியை உருவாக்குதல்

    மேலே உள்ளதைப் போலவே, ஒரு json_decode() செயல்பாடு உள்ளது, இது JSON சரங்களை டிகோட் செய்து உள்ளடக்கங்களை மாறிகளில் வைக்க உங்களை அனுமதிக்கிறது.

    ஜாவாஸ்கிரிப்டைப் போலவே, இந்த குறியீடு பின்வருவனவற்றை வெளியிடும்:

    [மின்னஞ்சல் பாதுகாக்கப்பட்டது]வொண்டர் விட்ஜெட்

    இயல்பாக, json_decode() JSON பொருட்களை PHP ஆப்ஜெக்ட்களாக வழங்கும். வழக்கமான தொடரியல் போலவே, ஒரு பொருளின் பண்புகளை அணுக -> ஐப் பயன்படுத்துகிறோம்.

    நீங்கள் பின்னர் தரவை ஒரு துணை வரிசையாகப் பயன்படுத்த விரும்பினால், இரண்டாவது அளவுருவை json_decode() செயல்பாட்டிற்கு அனுப்பவும். இங்கே ஒரு உதாரணம்:

    $cart = json_decode($jsonString, true); எதிரொலி $cart["shopperEmail"] . "
    "; எதிரொலி $cart["contents"]["productName"] . "
    ";

    இது அதே முடிவை உருவாக்குகிறது:

    [மின்னஞ்சல் பாதுகாக்கப்பட்டது]வொண்டர் விட்ஜெட்

    நீங்கள் json_decode() செயல்பாட்டிற்கு கூடுதல் வாதங்களை அனுப்பலாம்.

    JSON வடிவமைப்பைப் பற்றிய முடிவில்

    நீங்கள் அஜாக்ஸ் தொழில்நுட்பத்தைப் பயன்படுத்தி ஒரு வலை பயன்பாட்டை உருவாக்கப் போகிறீர்கள் என்றால், சேவையகத்திற்கும் உலாவிக்கும் இடையில் தரவைப் பரிமாறிக் கொள்ள நீங்கள் நிச்சயமாக JSON வடிவமைப்பைப் பயன்படுத்துவீர்கள்.


    நிச்சயமாக நீங்கள் JSON பற்றி கேள்விப்பட்டிருப்பீர்கள். அது என்ன? அது என்ன செய்ய முடியும், அதை எவ்வாறு பயன்படுத்துவது?

    இந்த டுடோரியலில் நாம் JSON இன் அடிப்படைகளை உள்ளடக்குவோம் மற்றும் பின்வரும் புள்ளிகளை உள்ளடக்குவோம்:

    • JSON என்றால் என்ன?
    • JSON எதற்காகப் பயன்படுத்தப்படுகிறது?
    • JSON சரத்தை எவ்வாறு உருவாக்குவது?
    • JSON சரத்தின் எளிய உதாரணம்.
    • JSON மற்றும் XML ஐ ஒப்பிடுவோம்.
    • ஜாவாஸ்கிரிப்ட் மற்றும் PHP இல் JSON உடன் வேலை செய்வது எப்படி?
    JSON என்றால் என்ன?

    JSON என்பது கட்டமைக்கப்பட்ட தரவைச் சேமித்து அனுப்புவதற்கான எளிய, உரை அடிப்படையிலான வழியாகும். எளிமையான தொடரியல் மூலம், நீங்கள் ஒரு எண்ணிலிருந்து சரங்கள், அணிவரிசைகள் மற்றும் பொருள்கள் வரை எளிய உரையில் எதையும் எளிதாகச் சேமிக்கலாம். சிக்கலான தரவு கட்டமைப்புகளை உருவாக்க, வரிசைகள் மற்றும் பொருட்களை ஒன்றாக இணைக்கலாம்.

    JSON சரம் உருவாக்கப்பட்டவுடன், அதை வேறொரு பயன்பாட்டிற்கு அல்லது நெட்வொர்க்கில் உள்ள வேறொரு இடத்திற்கு அனுப்புவது எளிது, ஏனெனில் அது எளிய உரை.

    JSON பின்வரும் நன்மைகளைக் கொண்டுள்ளது:

    • இது கச்சிதமானது.
    • அதன் வாக்கியங்கள் மனிதர்களாலும் கணினிகளாலும் படிக்கவும் எழுதவும் எளிதானவை.
    • பெரும்பாலான நிரலாக்க மொழிகளுக்கு (எண்கள், சரங்கள், பூலியன்கள், வரிசைகள் போன்றவை) தரவு கட்டமைப்பாக இதை எளிதாக மாற்றலாம்.
    • பல நிரலாக்க மொழிகளில் JSON கட்டமைப்புகளைப் படிக்கவும் உருவாக்கவும் செயல்பாடுகள் மற்றும் நூலகங்கள் உள்ளன.

    JSON என்ற பெயர் ஜாவாஸ்கிரிப்ட் ஆப்ஜெக்ட் நோட்டேஷனைக் குறிக்கிறது. பெயர் குறிப்பிடுவது போல, இது பொருள்களை வரையறுக்கும் வழியை அடிப்படையாகக் கொண்டது (பிற மொழிகளில் துணை அணிவரிசைகளை உருவாக்குவது போன்றது) மற்றும் வரிசைகள்.

    JSON எதற்காகப் பயன்படுத்தப்படுகிறது?

    சேவையகத்திலிருந்து உலாவிக்கு தரவை அனுப்புவதே JSON இன் மிகவும் பொதுவான பயன்பாடாகும். பொதுவாக, JSON தரவு AJAX ஐப் பயன்படுத்தி வழங்கப்படுகிறது, இது உலாவி மற்றும் சேவையகத்தை பக்கத்தை மீண்டும் ஏற்றாமல் தொடர்பு கொள்ள அனுமதிக்கிறது.

  • ஆன்லைன் ஸ்டோரில் உள்ள தயாரிப்பு சிறுபடத்தில் பயனர் கிளிக் செய்கிறார்.
  • உலாவியில் இயங்கும் ஜாவாஸ்கிரிப்ட், சர்வரில் இயங்கும் PHP ஸ்கிரிப்ட்டிற்கு AJAX கோரிக்கையை உருவாக்கி, தேர்ந்தெடுக்கப்பட்ட தயாரிப்பின் ஐடியை அனுப்புகிறது.
  • PHP ஸ்கிரிப்ட் தரவுத்தளத்திலிருந்து தயாரிப்பு பெயர், விளக்கம், விலை மற்றும் பிற தகவல்களைப் பெறுகிறது. பின்னர் அது தரவிலிருந்து JSON சரத்தை உருவாக்கி உலாவிக்கு அனுப்புகிறது.
  • உலாவியில் இயங்கும் ஜாவாஸ்கிரிப்ட் JSON சரத்தைப் பெறுகிறது, அதை டிகோட் செய்கிறது மற்றும் பயனருக்கான தயாரிப்பு தகவலை பக்கத்தில் காண்பிக்கும்.
  • GET அல்லது POST கோரிக்கைகளுக்கு JSON சரத்தை அளவுருவாக அனுப்புவதன் மூலம் உலாவியில் இருந்து சேவையகத்திற்கு தரவை அனுப்ப JSON ஐப் பயன்படுத்தலாம். ஆனால் இந்த முறை குறைவாகவே உள்ளது, ஏனெனில் அஜாக்ஸ் கோரிக்கைகள் மூலம் தரவு பரிமாற்றத்தை எளிதாக்கலாம். எடுத்துக்காட்டாக, GET கோரிக்கையின் ஒரு பகுதியாக தயாரிப்பு ஐடி URL இல் சேர்க்கப்படலாம்.

    jQuery நூலகத்தில் getJSON() மற்றும் parseJSON() போன்ற பல முறைகள் உள்ளன, அவை AJAX கோரிக்கைகள் மூலம் JSON ஐப் பயன்படுத்தி தரவை மீட்டெடுப்பதை எளிதாக்குகின்றன.

    JSON சரத்தை எவ்வாறு உருவாக்குவது?

    JSON சரத்தை உருவாக்க சில அடிப்படை விதிகள் உள்ளன:

    • JSON சரத்தில் மதிப்புகளின் வரிசை அல்லது ஒரு பொருள் (பெயர்/மதிப்பு ஜோடிகளின் துணை வரிசை) உள்ளது.
    • வரிசைசதுர அடைப்புக்குறிக்குள் ([மற்றும் ]) இணைக்கப்பட்டுள்ளது மற்றும் கமாவால் பிரிக்கப்பட்ட மதிப்புகளின் பட்டியலைக் கொண்டுள்ளது.
    • ஒரு பொருள்சுருள் பிரேஸ்களில் (( மற்றும் )) இணைக்கப்பட்டுள்ளது மற்றும் பெயர்/மதிப்பு ஜோடிகளின் கமாவால் பிரிக்கப்பட்ட பட்டியலைக் கொண்டுள்ளது.
    • பெயர்/மதிப்பு ஜோடிஇரட்டை மேற்கோள் குறிகளுடன் இணைக்கப்பட்ட புலத்தின் பெயரைக் கொண்டுள்ளது, அதைத் தொடர்ந்து ஒரு பெருங்குடல் (:) மற்றும் புல மதிப்பு.
    • பொருள்ஒரு வரிசை அல்லது பொருளில் இருக்கலாம்:
      • எண் (முழு எண் அல்லது மிதக்கும் புள்ளி)
      • சரம் (இரட்டை மேற்கோள்களில்)
      • பூலியன் மதிப்பு (உண்மை அல்லது தவறு)
      • மற்றொரு வரிசை (சதுர அடைப்புக்குறிக்குள் இணைக்கப்பட்டுள்ளது)
      • மற்றொரு பொருள் (சுருள் பிரேஸ்களில் இணைக்கப்பட்டுள்ளது)
      • பூஜ்ய மதிப்பு

    ஒரு சரத்தில் இரட்டை மேற்கோள்களைச் சேர்க்க, நீங்கள் பின்சாய்வுக்கோட்டைப் பயன்படுத்த வேண்டும்: \" . பல நிரலாக்க மொழிகளைப் போலவே, கட்டுப்பாட்டு எழுத்துகள் மற்றும் ஹெக்ஸ் குறியீடுகளை பின்சாய்வு மூலம் ஒரு சரத்தில் வைக்கலாம். விவரங்களுக்கு JSON இணையதளத்தைப் பார்க்கவும்.

    எளிய JSON சரம் உதாரணம்

    JSON வடிவத்தில் ஆர்டர் செய்வதற்கான எடுத்துக்காட்டு கீழே உள்ளது:

    ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [மின்னஞ்சல் பாதுகாக்கப்பட்டது]", "உள்ளடக்கங்கள்": [ ( "தயாரிப்பு ஐடி": 34, "தயாரிப்பு பெயர்": "சூப்பர் தயாரிப்பு", "அளவு": 1 ), ( "தயாரிப்பு ஐடி": 56, "தயாரிப்பு பெயர்": "மிராக்கிள் தயாரிப்பு", "அளவு": 3 ) ], "ஆர்டர் முடிந்தது": உண்மை )

    வரியை விரிவாகப் பார்ப்போம்:

    • சுருள் பிரேஸ்களைப் பயன்படுத்தி ஒரு பொருளை உருவாக்குகிறோம் (( மற்றும் )).
    • பொருள் பல பெயர்/மதிப்பு ஜோடிகளைக் கொண்டுள்ளது: "orderID": 12345 "orderId" என்ற பெயருடன் ஒரு சொத்து மற்றும் ஒரு முழு எண் மதிப்பு 12345 "shopperName": "Vanya Ivanov" "shopperName" என்ற பெயருடன் ஒரு சொத்து மற்றும் சர மதிப்பு "Vanya Ivanov" " "ஷாப்பர் மின்னஞ்சல்": " [மின்னஞ்சல் பாதுகாக்கப்பட்டது]சர மதிப்புடன் "shopperEmail" என பெயரிடப்பட்ட ஒரு சொத்து " [மின்னஞ்சல் பாதுகாக்கப்பட்டது]" "உள்ளடக்கங்கள்": [ ... ] "உள்ளடக்கங்கள்" என்று பெயரிடப்பட்ட ஒரு சொத்து, அதன் மதிப்பு "ஆர்டர் நிறைவடைந்தது": உண்மை "ஆர்டர் நிறைவடைந்தது" என்று பெயரிடப்பட்ட ஒரு சொத்து மற்றும் பூலியன் மதிப்பு உண்மை
    • "உள்ளடக்கம்" வரிசையில் 2 பொருள்கள் உள்ளன, அவை வரிசையில் உள்ள தனிப்பட்ட உருப்படிகளைக் குறிக்கின்றன. ஒவ்வொரு பொருளும் 3 பண்புகளைக் கொண்டுள்ளது: தயாரிப்பு ஐடி , தயாரிப்பு பெயர் , மற்றும் அளவு .

    மேலும், JSON ஜாவாஸ்கிரிப்ட் பொருள்களை அறிவிப்பதை அடிப்படையாகக் கொண்டிருப்பதால், மேலே உள்ள JSON சரத்தை விரைவாகவும் எளிதாகவும் ஜாவாஸ்கிரிப்ட் பொருளாக மாற்றலாம்:

    var cart = ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [மின்னஞ்சல் பாதுகாக்கப்பட்டது]", "உள்ளடக்கங்கள்": [ ( "தயாரிப்பு ஐடி": 34, "தயாரிப்பு பெயர்": "சூப்பர் தயாரிப்பு", "அளவு": 1 ), ( "தயாரிப்பு ஐடி": 56, "தயாரிப்பு பெயர்": "மிராக்கிள் தயாரிப்பு", "அளவு": 3 ) ], "orderCompleted": true );

    JSON மற்றும் XML இன் ஒப்பீடு

    பல வழிகளில், குறைந்தபட்சம் இணைய பயன்பாட்டு இடத்திலாவது XML க்கு மாற்றாக JSON ஐ நீங்கள் நினைக்கலாம். AJAX இன் கருத்து முதலில் சேவையகத்திற்கும் உலாவிக்கும் இடையில் தரவை மாற்ற XML ஐப் பயன்படுத்துவதை அடிப்படையாகக் கொண்டது. ஆனால் சமீபத்திய ஆண்டுகளில், AJAX தரவை கொண்டு செல்வதில் JSON பெருகிய முறையில் பிரபலமாகி வருகிறது.

    XML ஒரு நிரூபிக்கப்பட்ட தொழில்நுட்பம் ஆகும், இது நியாயமான எண்ணிக்கையிலான பயன்பாடுகளில் பயன்படுத்தப்படுகிறது, JSON ஆனது மிகவும் கச்சிதமான மற்றும் எளிதில் அடையாளம் காணக்கூடிய தரவு வடிவமாக இருப்பதன் நன்மையைக் கொண்டுள்ளது.

    எக்ஸ்எம்எல்லில் மேலே உள்ள எடுத்துக்காட்டுப் பொருள் இப்படித்தான் இருக்கும்:

    ஆர்டர்ஐடி 12345 கடைக்காரர் பெயர் வான்யா இவானோவ் கடைக்காரர் மின்னஞ்சல் [மின்னஞ்சல் பாதுகாக்கப்பட்டது]உள்ளடக்கங்கள் தயாரிப்பு ஐடி 34 தயாரிப்பு பெயர் சூப்பர் தயாரிப்பு அளவு 1 தயாரிப்பு ஐடி 56 தயாரிப்பு பெயர் மிராக்கிள் தயாரிப்பு அளவு 3 ஆர்டர் முடிந்தது உண்மை

    எக்ஸ்எம்எல் பதிப்பு கணிசமாக பெரியது. உண்மையில் இது 1128 எழுத்துகள் நீளமானது, JSON பதிப்பு 323 எழுத்துகள் மட்டுமே. XML பதிப்பைப் புரிந்துகொள்வது மிகவும் கடினம்.

    நிச்சயமாக, இது ஒரு தீவிர உதாரணம். மேலும் சிறிய XML பதிவை உருவாக்க முடியும். ஆனால் அது கூட JSON சமமானதை விட கணிசமாக நீண்டதாக இருக்கும்.

    JavaScript இல் JSON சரத்துடன் பணிபுரிதல்

    JSON ஒரு எளிய வடிவமைப்பைக் கொண்டுள்ளது, ஆனால் JSON சரத்தை கைமுறையாக உருவாக்குவது மிகவும் கடினமானது. கூடுதலாக, நீங்கள் அடிக்கடி JSON சரத்தை எடுக்க வேண்டும், அதன் உள்ளடக்கங்களை குறியீட்டில் பயன்படுத்தக்கூடிய மாறியாக மாற்ற வேண்டும்.

    பெரும்பாலான நிரலாக்க மொழிகளில் மாறிகளை எளிதாக JSON சரங்களாக மாற்றும் கருவிகள் உள்ளன.

    ஒரு மாறியிலிருந்து JSON சரத்தை உருவாக்குதல்

    ஜாவாஸ்கிரிப்ட் ஒரு உள்ளமைக்கப்பட்ட JSON.stringify() முறையைக் கொண்டுள்ளது, இது ஒரு மாறியை எடுத்து அதன் உள்ளடக்கங்களைக் குறிக்கும் JSON சரத்தை வழங்குகிறது. எடுத்துக்காட்டாக, எங்கள் எடுத்துக்காட்டில் இருந்து ஆர்டர் தகவலைக் கொண்ட ஜாவாஸ்கிரிப்ட் பொருளை உருவாக்கி, அதிலிருந்து ஒரு JSON சரத்தை உருவாக்கலாம்:

    var cart = ( "orderID": 12345, "shopperName": "Vanya Ivanov", "shopperEmail": " [மின்னஞ்சல் பாதுகாக்கப்பட்டது]", "உள்ளடக்கங்கள்": [ ( "தயாரிப்பு ஐடி": 34, "தயாரிப்பு பெயர்": "சூப்பர் தயாரிப்பு", "அளவு": 1 ), ( "தயாரிப்பு ஐடி": 56, "தயாரிப்பு பெயர்": "மிராக்கிள் தயாரிப்பு", "அளவு": 3 ) ], "orderCompleted": true ); எச்சரிக்கை (JSON.stringify(cart));

    இந்த குறியீடு உருவாக்கும்:

    JSON.stringify() முறையானது இடைவெளிகள் இல்லாமல் JSON சரத்தை வழங்குகிறது என்பதை நினைவில் கொள்ளவும். இதைப் படிப்பது மிகவும் கடினம், ஆனால் நெட்வொர்க்கில் பரிமாற்றம் செய்வதற்கு இது மிகவும் கச்சிதமானது.

    JavaScript இல் JSON சரத்தை அலசுவதற்கு பல வழிகள் உள்ளன, ஆனால் உள்ளமைக்கப்பட்ட JSON.parse() முறையைப் பயன்படுத்துவது பாதுகாப்பான மற்றும் மிகவும் நம்பகமானதாகும். இது JSON சரத்தைப் பெறுகிறது மற்றும் தரவைக் கொண்ட ஜாவாஸ்கிரிப்ட் பொருள் அல்லது வரிசையை வழங்குகிறது. உதாரணத்திற்கு:

    var jsonString = " \ ( \ "orderID": 12345, \ "shopperName": "Vanya Ivanov", \ "shopperEmail": " [மின்னஞ்சல் பாதுகாக்கப்பட்டது]", \ "உள்ளடக்கங்கள்": [ \ ( \ "productID": 34, \ "productName": "Super product", \ "quantity": 1 \), \ ( \ "productID": 56, \ "productName": "மிராக்கிள் பொருட்கள்", \"அளவு": 3\ ) \ ], \"orderCompleted": true \ ) \"; var கார்ட் = JSON.parse(jsonString); எச்சரிக்கை(cart.shopperEmail); எச்சரிக்கை (cart.contents.productName);

    எங்கள் உதாரண வரிசையின் JSON சரம் கொண்ட jsonString மாறியை உருவாக்கியுள்ளோம். இந்த சரத்தை JSON.parse() முறைக்கு அனுப்புகிறோம், இது JSON தரவைக் கொண்ட ஒரு பொருளை உருவாக்கி அதை கார்ட் மாறியில் சேமிக்கிறது. ஷாப்பர் மின்னஞ்சல் பொருளின் பண்புகளையும் உள்ளடக்க வரிசையின் தயாரிப்புப் பெயரையும் காண்பிப்பதன் மூலம் சரிபார்ப்பது மட்டுமே எஞ்சியுள்ளது.

    இதன் விளைவாக, பின்வரும் வெளியீட்டைப் பெறுவோம்:

    உண்மையான பயன்பாட்டில், உங்கள் ஜாவாஸ்கிரிப்ட் குறியீடு, சர்வர் ஸ்கிரிப்டில் இருந்து AJAX பதிலில் JSON சரமாக ஆர்டரைப் பெறுகிறது, சரத்தை JSON.parse() முறைக்கு அனுப்பவும், பின்னர் அதை பயனரின் பக்கத்தில் காண்பிக்க தரவைப் பயன்படுத்தவும்.

    JSON.stringify() மற்றும் JSON.parse() ஆகியவை குறிப்பிட்ட தரவைத் தனிப்பயனாக்க, திரும்ப அழைக்கும் செயல்பாடுகளைப் பயன்படுத்துவது போன்ற பிற திறன்களைக் கொண்டுள்ளன. பல்வேறு தரவுகளை சரியான ஜாவாஸ்கிரிப்ட் பொருள்களாக மாற்ற இத்தகைய விருப்பங்கள் மிகவும் பயனுள்ளதாக இருக்கும்.

    PHP இல் JSON சரத்துடன் பணிபுரிதல்

    PHP, ஜாவாஸ்கிரிப்ட் போன்றது, JSON சரங்களுடன் வேலை செய்வதற்கான உள்ளமைக்கப்பட்ட செயல்பாடுகளைக் கொண்டுள்ளது.

    PHP மாறியிலிருந்து JSON சரத்தை உருவாக்குதல்

    json_encode() செயல்பாடு ஒரு PHP மாறியை எடுத்து, மாறியின் உள்ளடக்கங்களைக் குறிக்கும் JSON சரத்தை வழங்குகிறது. PHP இல் எழுதப்பட்ட எங்கள் ஆர்டர் எடுத்துக்காட்டு இங்கே:

    இந்த குறியீடு JavaScript எடுத்துக்காட்டில் உள்ள அதே JSON சரத்தை வழங்குகிறது:

    ("orderID":12345,"shopperName":"Vanya Ivanov","shopperEmail":" [மின்னஞ்சல் பாதுகாக்கப்பட்டது]"," உள்ளடக்கங்கள் 3)],"ஆர்டர் முடிந்தது":உண்மை)

    ஒரு உண்மையான பயன்பாட்டில், உங்கள் PHP ஸ்கிரிப்ட் இந்த JSON சரத்தை உலாவிக்கு AJAX பதிலின் ஒரு பகுதியாக அனுப்பும், அங்கு JavaScript குறியீடு, JSON.parse() முறையைப் பயன்படுத்தி, பயனரின் பக்கத்தில் காண்பிக்கும் ஒரு மாறியில் அதை மீண்டும் அலசும். .

    json_encode() செயல்பாட்டிற்கு நீங்கள் பல்வேறு கொடிகளை இரண்டாவது வாதமாக அனுப்பலாம். அவற்றின் உதவியுடன், மாறிகளின் உள்ளடக்கங்களை JSON சரமாக குறியாக்குவதற்கான கொள்கைகளை நீங்கள் மாற்றலாம்.

    JSON சரத்திலிருந்து மாறியை உருவாக்கவும்

    JSON சரத்தை PHP மாறியாக மாற்ற, json_decode() முறையைப் பயன்படுத்தவும். ஜாவாஸ்கிரிப்ட்டுக்கான உதாரணத்தை JSON.parse() முறையில் PHP குறியீட்டுடன் மாற்றுவோம்:

    ஜாவாஸ்கிரிப்டைப் போலவே, இந்த குறியீடு உருவாக்கும்:

    [மின்னஞ்சல் பாதுகாக்கப்பட்டது]அதிசய தயாரிப்பு

    முன்னிருப்பாக, json_decode() செயல்பாடு JSON பொருட்களை PHP ஆப்ஜெக்ட்களாக வழங்குகிறது. stdClass வகுப்பின் பொதுவான PHP பொருள்கள் உள்ளன. அதனால்தான் மேலே உள்ள எடுத்துக்காட்டில் உள்ள பொருளின் பண்புகளை அணுக -> ஐப் பயன்படுத்துகிறோம்.

    தொடர்புடைய PHP வரிசையாக உங்களுக்கு JSON ஆப்ஜெக்ட் தேவைப்பட்டால், json_decode() செயல்பாட்டிற்கு நீங்கள் true ஐ இரண்டாவது வாதமாக அனுப்ப வேண்டும். உதாரணத்திற்கு:

    $cart = json_decode($jsonString, true); எதிரொலி $cart["shopperEmail"] . "
    "; எதிரொலி $cart["contents"]["productName"] . "
    ";

    இந்த குறியீடு அதே வெளியீட்டை உருவாக்கும்:

    [மின்னஞ்சல் பாதுகாக்கப்பட்டது]அதிசய தயாரிப்பு

    மறுநிகழ்வு ஆழம் மற்றும் பெரிய முழு எண்களை எவ்வாறு கையாள்வது என்பதைக் குறிப்பிட நீங்கள் json_decode() செயல்பாட்டிற்கு மற்ற வாதங்களையும் அனுப்பலாம்.

    முடிவுரை

    JSON புரிந்துகொள்ளவும் பயன்படுத்தவும் எளிதானது என்றாலும், பயன்பாடுகள் மற்றும் கணினிகளுக்கு இடையில் தரவை மாற்றுவதற்கு இது மிகவும் பயனுள்ள மற்றும் நெகிழ்வான கருவியாகும், குறிப்பாக AJAX ஐப் பயன்படுத்தும் போது. நீங்கள் AJAX பயன்பாட்டை உருவாக்க திட்டமிட்டால், JSON உங்கள் பட்டறையில் ஒரு இன்றியமையாத கருவியாக மாறும் என்பதில் சந்தேகமில்லை.