Javascript: невозможно преобразовать файл-объект в json [duplicate]

Хром, FF и узел кажутся неправильными здесь, Бабель прав:

Функции стрелок не имеют собственного arguments привязки в своей области; no arguments object создается при их вызове.

ищет официальные документы здесь

Выражения функции функции для функций, которые имеют свои [[ThisMode ]] установите на lexical, а когда они называются манифестацией объявления , не создается объект arguments . Существует даже примечание (18а), в котором указано, что «функции Arrow никогда не имеют объектов аргументов. ».

20
задан peacemaker 11 June 2014 в 08:34
поделиться

4 ответа

JSON.Stringify с File 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);

Другое решение: вы можете добавить 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);

Примечания: отправить File Объект на сервер с помощью POST глагола

8
ответ дан ahmed hamdy 25 August 2018 в 23:04
поделиться

В случае, если кто-то еще ищет решение для этого, см. мой ответ в другом сообщении и рабочем примере на JSFiddle.

JS :

function getFiles(){
    var files = document.getElementById("myFiles").files;
    var myArray = [];
    var file = {};

    console.log(files); // see the FileList

    // manually create a new file obj for each File in the FileList
    for(var i = 0; i < files.length; i++){

      file = {
          'lastMod'    : files[i].lastModified,
          'lastModDate': files[i].lastModifiedDate,
          'name'       : files[i].name,
          'size'       : files[i].size,
          'type'       : files[i].type,
      } 

      //add the file obj to your array
      myArray.push(file)
    }

    //stringify array
    console.log(JSON.stringify(myArray));
}

HTML:

<input id="myFiles" type="file" multiple onchange="getFiles()" />
2
ответ дан Community 25 August 2018 в 23:04
поделиться

Вы должны прочитать содержимое файла, используя 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 );
2
ответ дан Maël Nison 25 August 2018 в 23:04
поделиться
var obj = {
  name: 'dashu3f'
};

var stringObj = JSON.stringify(obj);
console.log(typeof stringObj);
console.log(stringObj);

откройте этот файл папки и запустите узел json.js

0
ответ дан yousef 25 August 2018 в 23:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: