使用此代码通过ajax发送params:
paramsToSend = $form.serializeArray();
params = JSON.stringify(paramsToSend)
我在服务器端解码json之后得到了这个数组:
Array
(
[0] => Array
(
[name] => name
[value] => Naomi
)
[1] => Array
(
[name] => password
[value] => test123456
)
[2] => Array
(
[name] => email
[value] => naomitest@gmail.com
)
[3] => Array
(
[name] => code
[value] => test123456@test123456
)
[4] => Array
(
[name] => phone
[value] => 423523545435
)
)
我可以将其转换为Object并获得如下值:
User.name //will print Naomi
User.password // will print test123456
因为我需要其他不同的参数来进行ajax调用,是我序列化数据的方式+转换为json最佳实践吗?如果没有,请给我建议。感谢
答案 0 :(得分:0)
对于这个,您可以使用array_column提取键和值,然后array_combine将它们组合成键/值数组,然后使用ArrayObject使其成为数组或对象。
例如:
<?php
$data = [
['name' => 'name', 'value' => 'Naomi'],
['name' => 'password', 'value' => 'test123456'],
['name' => 'email', 'value' => 'naomitest@gmail.com'],
['name' => 'code', 'value' => 'test123456@test123456'],
['name' => 'phone', 'value' => 423523545435]
];
$data = new ArrayObject(
array_combine(
array_column($data, 'name'),
array_column($data, 'value')
)
);
$data->setFlags(ArrayObject::STD_PROP_LIST|ArrayObject::ARRAY_AS_PROPS);
echo $data->name; // Naomi
echo $data['name']; // Naomi