| object/array → string | string → object/array | |
|---|---|---|
| JavaScript | var str1=JSON.stringify(obj1/ary1); | var obj2/ary2=JSON.parse(str1); |
| PHP | $str1=json_encode($obj1/$ary1); | $obj2/$ary2=json_decode($str1); |
| Python | import json str1=json.dumps(obj1/ary1) |
import json obj2/ary2=json.loads(str1) |
●Python3
import json
oEx1={
"str1": "This is a test!",
"num1": 38.7,
"boo1": True,
"boo2": False,
"null1": None,
"obj1": {},
"ary1": []
};
aEx2=["string", 99.45, True, False, None, {}, []];
strEx1=json.dumps(oEx1)
strEx2=json.dumps(aEx2)
print(strEx1) # {"str1": "This is a test!", "num1": 38.7, "boo1": true, "boo2": false, "null1": null, "obj1": {}, "ary1": []}
print(strEx2) # ["string", 99.45, true, false, null, {}, []]
ex1=json.loads(strEx1); # maybe an object or an array
ex2=json.loads(strEx2); # maybe an object or an array
print(ex1) # {'str1': 'This is a test!', 'num1': 38.7, 'boo1': True, 'boo2': False, 'null1': None, 'obj1': {}, 'ary1': []}
print(ex2) # ['string', 99.45, True, False, None, {}, []]
●Javascript
var oEx1={
"str1": "This is a test!",
"num1": 38.7,
"boo1": true,
"boo2": false,
"null1": null,
"obj1": {},
"ary1": []
};
var aEx2=["string", 99.45, true, false, null, {}, []];
var strEx1=JSON.stringify(oEx1);
var strEx2=JSON.stringify(aEx2);
console.log(strEx1); // {"str1":"This is a test!","num1":38.7,"boo1":true,"boo2":false,"null1":null,"obj1":{},"ary1":[]}
console.log(strEx2); // ["string",99.45,true,false,null,{},[]]
var ex1=JSON.parse(strEx1); // maybe an object or an array
var ex2=JSON.parse(strEx2); // maybe an object or an array
console.log(ex1);
console.log(ex2);
●PHP
<?php
// 標準方式,比較一致。
$oEx1=new stdClass();
$oEx1->str1="This is a test!";
$oEx1->num1=38.7;
$oEx1->boo1=true;
$oEx1->boo2=false;
$oEx1->null1=null;
$oEx1->obj1=new stdClass();
$oEx1->ary1=array();
// 陣列搭配 key-value pairs 就會變成是 json 的物件
$oEx3=array(
"str1"=>"This is a test!",
"num1"=>38.7,
"boo1"=>true,
"boo2"=>false
);
$oEx3["null1"]=null;
$oEx3["obj1"]=new stdClass(); // 因為是空物件,沒有 key-value pair,所以得用 new stdClass()
$oEx3["ary1"]=array();
echo $oEx1->str1 . '<br>'; // This is a test!
echo $oEx3["str1"] . '<br>'; // This is a test!
$aEx2=array();
$aEx2[]="string";
$aEx2[]=99.45;
$aEx2[]=true;
$aEx2[]=false;
$aEx2[]=null;
$aEx2[]=new stdClass();
$aEx2[]=array();
$strEx1=json_encode($oEx1);
$strEx3=json_encode($oEx3);
$strEx2=json_encode($aEx2);
echo '<pre>' . $strEx1 . '</pre>'; // {"str1":"This is a test!","num1":38.7,"boo1":true,"boo2":false,"null1":null,"obj1":{},"ary1":[]}
echo '<pre>' . $strEx3 . '</pre>'; // {"str1":"This is a test!","num1":38.7,"boo1":true,"boo2":false,"null1":null,"obj1":{},"ary1":[]}
echo '<pre>' . $strEx2 . '</pre>'; // ["string",99.45,true,false,null,{},[]]
$ex1=json_decode($strEx1);
$ex3=json_decode($strEx3);
$ex2=json_decode($strEx2);
echo '<pre>';
var_dump($ex1);
echo '</pre>';
// object(stdClass)#5 (7) {
// ["str1"]=>
// string(15) "This is a test!"
// ["num1"]=>
// float(38.7)
// ["boo1"]=>
// bool(true)
// ["boo2"]=>
// bool(false)
// ["null1"]=>
// NULL
// ["obj1"]=>
// object(stdClass)#6 (0) {
// }
// ["ary1"]=>
// array(0) {
// }
// }
echo '<pre>';
var_dump($ex3);
echo '</pre>';
// object(stdClass)#7 (7) {
// ["str1"]=>
// string(15) "This is a test!"
// ["num1"]=>
// float(38.7)
// ["boo1"]=>
// bool(true)
// ["boo2"]=>
// bool(false)
// ["null1"]=>
// NULL
// ["obj1"]=>
// object(stdClass)#8 (0) {
// }
// ["ary1"]=>
// array(0) {
// }
// }
echo '<pre>';
var_dump($ex2);
echo '</pre>';
// array(7) {
// [0]=>
// string(6) "string"
// [1]=>
// float(99.45)
// [2]=>
// bool(true)
// [3]=>
// bool(false)
// [4]=>
// NULL
// [5]=>
// object(stdClass)#6 (0) {
// }
// [6]=>
// array(0) {
// }
// }
?>