在Javascript#EXIF数据中将对象转换为JSON时的JSON.stringify问题

在Javascript#EXIF数据中将对象转换为JSON时的JSON.stringify问题,javascript,php,json,Javascript,Php,Json,对象转换为json很简单,但不知道我的代码会发生什么 所以我想用PHP读取图像元数据(最重要的是图像创建日期时间),但iPhone和其他手机不会将此信息与图像一起发送,如果尝试使用PC上传,则会起作用。但如果图像被压缩,则会丢失所有元数据 所以使用php读取元数据是没有用的,然后我决定通过JavaScript读取,为此我使用了 对于多次上传,一切正常,但当我尝试将对象转换为json时,得到的是空字符串 这是我的密码 $('#ServicePhotos').change(function(){

对象转换为json很简单,但不知道我的代码会发生什么

所以我想用PHP读取图像元数据(最重要的是图像创建日期时间),但iPhone和其他手机不会将此信息与图像一起发送,如果尝试使用PC上传,则会起作用。但如果图像被压缩,则会丢失所有元数据

所以使用php读取元数据是没有用的,然后我决定通过JavaScript读取,为此我使用了

对于多次上传,一切正常,但当我尝试将对象转换为json时,得到的是空字符串

这是我的密码

$('#ServicePhotos').change(function(){
$('#err_msg').html('');
var对象={};
var lg=this.files.length;
对于(变量i=0;i=0?file\u path.lastIndexOf('\\'):file\u path.lastIndexOf('/');
var filename=file_path.substring(startIndex);
if(filename.indexOf('\\')==0 | | filename.indexOf('/')==0){
filename=filename.substring(1);}
//console.log('上传图像'+文件名);
}
getData(文件,函数(){
var exifData=EXIF.pretty(这个);
如果(exifData){
var-allMetaData=EXIF.getAllTags(这个);
var DateTime=EXIF.getTag(这是“DateTime”);
对象[文件名]={'created':DateTime};
}
});
})(本文件[i]);
}
console.log(对象);/*显示所有数据*/
var myJSON=JSON.stringify(对象);
console.log(myJSON);/*空*/
$('#err_msg').html(myJSON);
$('meta#u data').val(myJSON);
});

如果不能字符串化,则可能意味着对象没有可枚举的属性。您可以测试对象属性是否正确,如果正确,您应该能够使用
JSON.stringify()

MDN Web文档():

所有其他对象实例(包括Map、Set、WeakMap和WeakSet)将只序列化其可枚举属性

从文件:


你能显示
console.log(对象)
结果吗?@RainDev补充道。谢谢您使用的exif的确切版本是什么?@wscourge exif正在正常工作。这个版本@wscourge它是v2.3那么为什么这个代码可以工作呢?var obj={};对于(varx=1;x<10;x++){obj[x+”.jpg“]={'created':x+1};}console.log(obj);var myJSON=JSON.stringify(obj);log(myJSON);因为您的对象属性是可枚举的:像检查(obj中的var prop)console.log(obj.propertyIsEnumerable(prop))一样检查它;那很好,但我需要解决方案。我想在服务器上以key=>value发送文件名和创建日期时间。这就是全部。。。如何做?