சி ++ இல் JSON ஐ பாகுபடுத்துவது எப்படி

How Parse Json C



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

JSON என்றால் என்ன?

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







சேவையகத்திலிருந்து தரவை வலைப்பக்கத்திற்கு மாற்ற இது பெரும்பாலும் பயன்படுத்தப்படுகிறது. XML ஐ விட JSON இல் கட்டமைக்கப்பட்ட தரவை பிரதிநிதித்துவப்படுத்துவது மிகவும் எளிதானது மற்றும் சுத்தமானது.



JSON தொடரியல் விதி

JSON தொடரியல் விதிகள் இங்கே:



  1. JSON தரவு எப்போதும் முக்கிய மதிப்பு ஜோடிகளின் வடிவத்தில் இருக்க வேண்டும்.
  2. JSON தரவு காற்புள்ளிகளால் பிரிக்கப்படுகிறது.
  3. JSON பொருளைக் குறிக்க ஒரு சுருள் பிரேஸ் பயன்படுத்தப்படுகிறது.
  4. JSON வரிசையைக் குறிக்க சதுர அடைப்புக்குறி பயன்படுத்தப்படுகிறது.

JSON தரவு என்றால் என்ன?

முக்கிய மதிப்பு ஜோடிகளின் வடிவத்தில் JSON தரவு குறிப்பிடப்படுகிறது. இது மற்ற நிரலாக்க மொழிகளில் அகராதி அல்லது ஹாஷ் போன்றது.





பெயர்: டிரேக்

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



JSON கோப்பு நீட்டிப்பு

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

JSON பொருள்

JSON பொருள் சுருள் பிரேஸ்களுக்குள் இணைக்கப்பட்டுள்ள JSON தரவைத் தவிர வேறில்லை. இங்கே ஒரு மாதிரி JSON பொருள்:

{
பெயர்:டிரேக்,
ஊழியர் ஐடி:23547 அ,
தொலைபேசி: 23547,
துறை:நிதி
}

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

JSON வரிசை

ஒரு JSON வரிசையில் பல கமாவால் பிரிக்கப்பட்ட JSON பொருள்கள் இருக்கலாம். JSON வரிசை ஒரு சதுர அடைப்புக்குறிக்குள் இணைக்கப்பட்டுள்ளது. JSON வரிசையின் உதாரணத்தைப் பார்ப்போம்:

'மாணவர்கள்':[
{'முதல் பெயர்':'சீன்', 'கடைசி பெயர்':'பிரவுன்'},
{'முதல் பெயர்':'டிரேக்', 'கடைசி பெயர்':'வில்லியம்ஸ்'},
{'முதல் பெயர்':'டாம்', 'கடைசி பெயர்':'மில்லர்'},
{முதல் பெயர்:பீட்டர்,கடைசி பெயர்:ஜான்சன்}
]

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

ஒரு மாதிரி JSON கோப்பு

இப்போது, ​​JSON தரவு, JSON பொருள்கள், JSON வரிசை ஆகியவற்றை நாங்கள் புரிந்து கொண்டதால், JSON கோப்பின் உதாரணத்தைப் பார்ப்போம்:

{
முதல் பெயர்:சீன்,
கடைசி பெயர்:பிரவுன்,
மாணவர் அடையாளம்: 21453,
துறை:கணினி எஸ்.சி.,
பாடங்கள்:[கணிதம்,பை,கெம்]
}

சி ++ இல் பார்சிங் நூலகங்கள்:

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

  1. https://github.com/nlohmann/json
  2. https://github.com/Tencent/rapidjson/

கீழே காட்டப்பட்டுள்ள எடுத்துக்காட்டுகளைச் செயல்படுத்த இந்த நூலகங்களை நீங்கள் பதிவிறக்க விரும்பலாம்.

எடுத்துக்காட்டுகள்

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

  • எடுத்துக்காட்டு -1: சி ++ இல் JSON ஐப் பகுக்கவும்
  • எடுத்துக்காட்டு -2: சி ++ இல் JSON ஐ அலசவும் மற்றும் வரிசைப்படுத்தவும்
  • எடுத்துக்காட்டு -3: C ++ இல் JSON ஐப் பகுக்கவும்

எடுத்துக்காட்டு -1 மற்றும் எடுத்துக்காட்டு -2 க்கு, நாங்கள் nlohmann நூலகத்தைப் பயன்படுத்தப் போகிறோம். உதாரணம் -3 இன் விஷயத்தில், நாங்கள் RapidJSON நூலகத்தைப் பயன்படுத்துவோம்.

எடுத்துக்காட்டு -1: சி ++ இல் JSON ஐப் பகுக்கவும்

இந்த எடுத்துக்காட்டு திட்டத்தில், C ++ இல் JSON தரவின் மதிப்புகளை எவ்வாறு அணுகுவது என்பதை நாங்கள் காண்பிப்போம்.

#சேர்க்கிறது
#'json.hpp' ஐ சேர்க்கவும்

json பயன்படுத்தி=nlohmann::json;

intமுக்கிய()
{

// jdEmployees
json jd பணியாளர்கள்=
{
{'முதல் பெயர்','சீன்'},
{'கடைசி பெயர்','பிரவுன்'},
{'மாணவர் அடையாளம்',21453},
{'துறை','கணினி எஸ்சி.'}
};

// மதிப்புகளை அணுகவும்
மணி::லேசான கயிறுபெயர்=jdEmployees.மதிப்பு('முதல் பெயர்', 'அச்சச்சோ');
மணி::லேசான கயிறுபெயர்=jdEmployees.மதிப்பு('கடைசி பெயர்', 'அச்சச்சோ');
intsID=jdEmployees.மதிப்பு('மாணவர் அடையாளம்', 0);
மணி::லேசான கயிறுதுறை=jdEmployees.மதிப்பு('துறை', 'அச்சச்சோ');

// மதிப்புகளை அச்சிடுங்கள்
மணி::செலவு << முதல் பெயர்: ' <<பெயர்<<மணி::endl;
மணி::செலவு << கடைசி பெயர்: ' <<பெயர்<<மணி::endl;
மணி::செலவு << 'மாணவர் அடையாளம்: ' <<sID<<மணி::endl;
மணி::செலவு << 'துறை: ' <<துறை<<மணி::endl;

திரும்ப 0;
}

எடுத்துக்காட்டு -2: சி ++ இல் JSON ஐ அலசவும் மற்றும் வரிசைப்படுத்தவும்

இந்த எடுத்துக்காட்டுத் திட்டத்தில், C ++ இல் JSON ஐ எவ்வாறு பாகுபடுத்தி தொடர் செய்வது என்று பார்க்கப் போகிறோம். JSON தரவைப் பாகுபடுத்த json :: parse () ஐப் பயன்படுத்துகிறோம்.

#சேர்க்கிறது
#'json.hpp' ஐ சேர்க்கவும்
#சேர்க்கிறது

json பயன்படுத்தி=nlohmann::json;

intமுக்கிய()
{
// இதோ ஒரு JSON உரை
கரிஉரை[] =ஆர்'(
{
'
நூல்': {
'
அகலம்': 450,
'
உயரம்': 30,
'
தலைப்பு':'வணக்கம் உலகம்',
'
வாழ்க்கை வரலாறு ஆகும்': பொய்,
'
NumOfCopies': 4,
'
நூலகங்கள்': [2319, 1406, 3854, 987]
}
}
) '
;

// JSON ஐ பாகுபடுத்தி தொடர்வோம்
json j_complete=json::பகுப்பு(உரை);
மணி::செலவு <<மணி::அமை(4) <<j_complete<<மணி::endl;
}

எடுத்துக்காட்டு -3: C ++ இல் JSON ஐப் பகுக்கவும்

இப்போது, ​​RapidJSON நூலகத்தைப் பயன்படுத்தி JSON சரத்தை எவ்வாறு பாகுபடுத்துவது என்பதை நாங்கள் நிரூபிப்போம். RapidJSON முதலில் RapidXML ஆல் ஈர்க்கப்பட்டது. இந்த எடுத்துக்காட்டுத் திட்டத்தில், நாங்கள் ஒரு JSON சரத்தை DOM இல் பாகுபடுத்திக் கொண்டிருக்கிறோம். நாங்கள் Mydoc of type ஆவணத்தை அறிவித்து பின்னர் mydoc.parse () முறையைப் பயன்படுத்தி JSON சரத்தை பாகுபடுத்தினோம்.

#சேர்க்கிறது
#விரைவு மகன்/எழுத்தாளர்.
#விரைவானது/document.h 'ஐ சேர்க்கவும்
#விரைவானவர்/stringbuffer.h 'ஐ சேர்க்கவும்

நேம்ஸ்பேஸ் ரேபிட்ஜ்சனைப் பயன்படுத்துதல்;

intமுக்கிய()
{

கான்ஸ்ட் கரி*json= '{'முதல் பெயர்':'சீன்','கடைசி பெயர்':'பிரவுன்','empId': 21453,
'
துறை':'கணினி எஸ்.சி.'}';

// JSON சரம் DOM இல் பாகுபடுத்தவும்
ஆவணம் mydoc;
mydoc.பகுப்பு(json);

// DOM to string
StringBuffer இடையகம்;
எழுத்தாளர்<StringBuffer>எழுத்தாளர்(இடையகம்);

mydoc.ஏற்றுக்கொள்(எழுத்தாளர்);

// வெளியீட்டை அச்சிடுங்கள்
மணி::செலவு <<இடையகம்.GetString() <<மணி::endl;

திரும்ப 0;
}

முடிவுரை

இந்த கட்டுரையில், நாங்கள் சுருக்கமாக விவாதித்தோம் JSON தரவு, பொருள், வரிசை மற்றும் தொடரியல். நமக்குத் தெரிந்தபடி, சி ++ இல் JSON தரவு பாகுபடுத்தலுக்கு சொந்த தீர்வு இல்லை; C ++ இல் JSON தரவை பாகுபடுத்த இரண்டு வெவ்வேறு நூலகங்களைப் பயன்படுத்தியுள்ளோம். C ++ இல் JSON தரவு பாகுபடுத்தும் பொறிமுறையை நிரூபிக்க நாங்கள் மூன்று வெவ்வேறு எடுத்துக்காட்டுகளைப் பார்த்தோம். Nlohmann நூலகத்துடன் ஒப்பிடுகையில், RapidJSON சிறியது, வேகமானது மற்றும் நினைவகத்திற்கு ஏற்றது.