我有以下代码:
//check if there is file uploaded
$post_image = '';
if(!empty($_FILES['post_image']) && ($_FILES['post_image']['error']=='0' || $_FILES["pictures"]["error"] == UPLOAD_ERR_OK)){
// get the file name
$post_image = $_FILES['post_image']['name'];
// get temp name
$post_image_temp = $_FILES['post_image']['temp_name'];
// code to move uploaded file to desired location on server
if (move_uploaded_file($post_image_temp, "../images/$post_image")) {
echo "File successfully uploaded.\n";
} else {
echo "File not uploaded\n";
}
}
我得到了这个输出:
const result = JSON.stringify({
drivingLicence: {
documentNumber: '3333',
countryOfIssue: 'UNITED_KINGDOM',
regionOfIssue: 'UK'
},
mothersMaidenName: 'AAAAA',
nationalIdentityCard: {},
nationalInsuranceNumber: 'NW 26 52 66 A',
passport: {}
},(key, value) =>{
console.log(typeof key + ' ' + key);
return value;
});
我不明白第一个输出来自哪里。
它说密钥是一个空字符串。这是从哪里来的?
答案 0 :(得分:3)
这是JSON.stringify
的正常行为。来自MDN:
replacer
参数可以是函数,也可以是数组。作为一个函数,它需要两个参数,键和值被字符串化。找到密钥的对象作为replacer的this参数提供。 最初使用表示字符串化对象的空键调用,然后为要字符串化的对象或数组上的每个属性调用它。
来自standard:
- 返回
醇>? SerializeJSONProperty(the empty String, wrapper)
。
这就是JSON.stringify
返回的内容。 SerializeJSONProperty
需要key
和value
,并使用替换函数将其转换为JSON。