Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何设置变量';在angularjs中上传文件json数据的s值?_Javascript_Angularjs_Json - Fatal编程技术网

Javascript 如何设置变量';在angularjs中上传文件json数据的s值?

Javascript 如何设置变量';在angularjs中上传文件json数据的s值?,javascript,angularjs,json,Javascript,Angularjs,Json,我是安格拉斯的新手。我想上传一个JSON文件,使用 我正试图访问控制器中的数据,如下所示: $scope.uploadFile = function(files) { $scope.jsonData = files[0].data; }; 但是我的变量中有一个未定义的。我必须使用这个变量来填充网站上的各种其他字段。请帮助我如何访问上传的输入文件的数据。您需要使用API FileReader对象允许web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容 其方法 readA

我是安格拉斯的新手。我想上传一个JSON文件,使用

我正试图访问控制器中的数据,如下所示:

$scope.uploadFile = function(files) {

$scope.jsonData = files[0].data;

};
但是我的变量中有一个未定义的。我必须使用这个变量来填充网站上的各种其他字段。请帮助我如何访问上传的输入文件的数据。

您需要使用API

FileReader对象允许web应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容

其方法

readAsText
方法用于读取指定Blob或文件的内容

注意:这里是一个例子,它在现代浏览器中工作

$(文档).ready(函数(){
$('#file').change(函数(e){
var reader=new FileReader();
reader.onload=函数(e){
console.log(如target.result);
//如果您想在JSON中使用
//var json=json.parse(e.target.result)
}
reader.readAsText(this.files[0]);
});
});

只是另一种方式。。。如果您不想使用
FileReader
并使用
JSON.parse手动解析文本,并且在格式错误的情况下将其包装为try/catch

//模拟一个文件`file=files[0]`
var file=newblob(['{“hello”:“world”}']))
新响应(file).json()。然后(
json=>console.log(json),
err=>console.error(“无效的json数据”)
)
(代表OP发布解决方案)


谢谢@Satpal我使用fileReader.readAsText()和JSON.parse()解决了这个问题。

只是
文件[0]
@Satpal但是我如何将文件中的数据转换成对象?但是这是返回文件的原始数据,而不是我想要使用它的方式。它不是一个我可以根据“键”访问其“值”的对象形式