pea*_*ker 30 javascript jquery html5 json file
我想将html输入文件转换为json字符串,如下所示:
var jsonString = JSON.stringify(file);
console.log( file );
console.log( jsonString );
Run Code Online (Sandbox Code Playgroud)
现在,在我的萤火虫中:
File { size=360195, type="image/jpeg", name="xyz.jpg", mehr...}
Object {}
Run Code Online (Sandbox Code Playgroud)
为什么jsonString
空?
背景信息:我想用jsonp将文件引用发送到另一个php服务器
附加信息:我想只将文件指针(引用)转换为字符串,通过GET发送.
JSON.Stringify
用文件API(转换File
对象为字符串)中chrome
,firefox
并且safari
浏览器不能正常工作(转换File
对象{}
)我不知道其中的原因]
您可以File
使用将对象转换为字符串JSON.Stringify
例如:
// get File Object
var fileObject = getFile();
// reCreate new Object and set File Data into it
var newObject = {
'lastModified' : fileObject.lastModified,
'lastModifiedDate' : fileObject.lastModifiedDate,
'name' : fileObject.name,
'size' : fileObject.size,
'type' : fileObject.type
};
// then use JSON.stringify on new object
JSON.stringify(newObject);
Run Code Online (Sandbox Code Playgroud)
另一种解决方案:您可以向对象添加toJSON()行为File
EX:
// get File Object
var fileObject = getFile();
// implement toJSON() behavior
fileObject.toJSON = function() { return {
'lastModified' : myFile.lastModified,
'lastModifiedDate' : myFile.lastModifiedDate,
'name' : myFile.name,
'size' : myFile.size,
'type' : myFile.type
};}
// then use JSON.stringify on File object
JSON.stringify(fileObject);
Run Code Online (Sandbox Code Playgroud)
注意:File
使用POST
动词将Object 发送到服务器
您必须使用FileReader API读取文件内容。File对象不包含文件内容(它只是指向文件的指针,允许您稍后阅读)。
您可以查看此HTML5Rocks文章,以了解有关此API用法的更多信息。
var file = getAFile( );
var success = function ( content ) {
console.log( JSON.stringify( content ) ); }
var fileReader = new FileReader( );
fileReader.onload = function ( evt ) { success( evt.target.result ) };
fileReader.readAsText( file );
Run Code Online (Sandbox Code Playgroud)