1、PHP关联数组与json数据转换前后key的顺序不变
<?php // obj -> json $obj1 = [ 'name'=>'Tom', 'age'=> 23, ]; $obj2 = [ 'age'=> 23, 'name'=>'Tom', ]; print_r(json_encode($obj1)); // {"name":"Tom","age":23} print_r(json_encode($obj2)); // {"age":23,"name":"Tom"} // json -> obj print_r(json_decode('{"name":"Tom","age":23}')); // ([name] => Tom [age] => 23) print_r(json_decode('{"age":23,"name":"Tom"}')); // ([age] => 23 [name] => Tom)
2、Python字典结构与json转换后3.6之前顺序不一致,之后顺序保持一致
import json # obj -> json obj1 = {"age":23,"name":"Tom"} print(json.dumps(obj1)) # {"age": 23, "name": "Tom"} obj2 = {"name":"Tom", "age":23} print(json.dumps(obj2)) # python3.7 {"name": "Tom", "age": 23} # python3.6.5 {"name": "Tom", "age": 23} # python2.7 {"age": 23, "name": "Tom"} # json -> obj arr1 = json.loads('{"age":23,"name":"Tom"}') print(arr1) # {'age': 23, 'name': 'Tom'} arr2 = json.loads('{"name":"Tom", "age":23}') print(arr2) # python3.7 {'name': 'Tom', 'age': 23} # python3.6.5 {"name": "Tom", "age": 23} # python2.7 {u'age': 23, u'name': u'Tom'}
Python 3.6 开始dict字典开始变得有序
[Python-Dev] Python 3.6 dict becomes compact and gets a private version; and keywords become ordered
3、JS数据对象和json数据转换之后key顺序保持不变
// obj -> json var obj1 = {"age":23,"name":"Tom"} var obj2 = {"name":"Tom", "age":23} console.log(JSON.stringify(obj1)); // {"age":23,"name":"Tom"} console.log(JSON.stringify(obj2)); // {"name":"Tom","age":23} // json -> obj console.log(JSON.parse('{"age":23,"name":"Tom"}')); // { age: 23, name: 'Tom' } console.log(JSON.parse('{"name":"Tom", "age":23}')); // { name: 'Tom', age: 23 }