JSON Encode/Decode
JSON क्या है
JSON (JavaScript Object Notation) data रखने और भेजने का हल्का text format है। यह {} और [] के साथ लिखे PHP array जैसा दिखता है। server और browser के बीच, या API में data भेजने का यह standard तरीका है, क्योंकि लगभग हर language इसे पढ़ सकती है।
json_encode (array → JSON) और json_decode (JSON → array)।Array से JSON (encode)
<?php
$data = [
"name" => "Aman",
"class" => 12,
"marks" => [90, 85, 88]
];
echo json_encode($data);
?>
json_encode पूरे array को — nested marks array समेत — एक JSON string में बदल देता है, browser या API को भेजने के लिए तैयार।
JSON से array (decode)
PHP array वापस पाने को दूसरे argument में true दीजिए।
<?php
$json = '{"name":"Aman","class":12}';
$arr = json_decode($json, true);
echo $arr["name"]; // Aman
echo $arr["class"]; // 12
?>
true के साथ values को आम associative array की तरह access कीजिए ($arr["name"])।
Object के रूप में decode
true बिना PHP object देता है; -> से access कीजिए।
<?php
$json = '{"name":"Aman","class":12}';
$obj = json_decode($json); // object
echo $obj->name; // Aman
?>
दोनों तरीके चलते हैं — अपने code की पसंद से array style (["name"]) या object style (->name) चुनिए।
पढ़ने योग्य JSON
JSON को इंसानों के लिए सुंदर format करने को JSON_PRETTY_PRINT इस्तेमाल कीजिए।
<?php
$data = ["name" => "Aman", "class" => 12];
echo json_encode($data, JSON_PRETTY_PRINT);
?>
"name": "Aman",
"class": 12
}
Pretty print indentation जोड़ता है, जो debugging या ख़ुद पढ़ने वाली file में JSON save करते समय बढ़िया है।
आम गलतियाँ
- json_decode में
trueभूलना। इसके बिना object मिलता है, तो$x["key"]fail होता है। - Invalid JSON। एक फालतू comma या missing quote से
json_decodenull देता है। - Errors न जाँचना। decode क्यों fail हुआ देखने को
json_last_error_msg()। - Object और array access मिलाना। objects को
->, arrays को[]— दोनों नहीं।
सारांश
- JSON systems के बीच data भेजने का text format है।
json_encodePHP array को JSON बनाता है।json_decode($j, true)JSON को PHP array बनाता है।trueबिना object मिलता है (->इस्तेमाल कीजिए)।- पढ़ने योग्य output को
JSON_PRETTY_PRINT।
आगे, दूसरी sites से JSON लाइए PHP cURL से, या data API बनाइए PHP REST API से।
अक्सर पूछे जाने वाले प्रश्न (FAQ)
PHP में JSON किसलिए इस्तेमाल होता है?
json_encode से JSON बनाती है और JSON को json_decode से वापस पढ़ती है।json_encode और json_decode में क्या अंतर है?
json_encode PHP array या object को JSON string में बदलता है। json_decode उल्टा करता है — JSON string को वापस PHP array या object में। ये बिल्कुल उल्टे हैं।json_decode से object की जगह array कैसे लूँ?
true दीजिए: json_decode($json, true)। इसके बिना PHP object देता है जहाँ values [] की जगह -> से access होती हैं।json_decode null क्यों देता है?
json_last_error_msg() जाँचिए कि क्या गलत हुआ।