首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >文件上传将字符串数据转换为json数据javascript

文件上传将字符串数据转换为json数据javascript
EN

Stack Overflow用户
提问于 2018-06-28 08:58:56
回答 1查看 1.4K关注 0票数 0

我正在加载一个json数据文件,数据被作为字符串读取。我正在尝试使用JSON.parse将该字符串转换为JSON对象,但它仍然是字符串。

THis是JSON文件。

代码语言:javascript
复制
{
    "annotations": {
        "a": [{
                "AA00": [4.9724, 6.7862, 1.568737, 4.9943, 17.4203, 1.568737]
            },
            {
                "AA01": [6.5117, 17.4155, -1.572977, 6.5584, 6.7322, -1.572977]
            },
            {
                "AA02": [7.7934, 6.7196, 1.575093, 7.7473, 17.4463, 1.575093]
            },
            {
                "AA03": [9.7196, 17.3718, -1.563688, 9.7145, 9.6473, -1.563688]
            },
            {
                "AA04": [12.2965, 24.9181, -1.558673, 12.4939, 11.9399, -1.558673]
            }
                ]
                    ,
            "p": [{"HOME": [9.60, 6.22, 0.0]}]
        }

}

jquery代码;-

代码语言:javascript
复制
$('#annotation-file-upload').on('change', function(){
            if (this.files && this.files[0]) {
            var reader = new FileReader();
            reader.onload = function (e) {      
                console.log(typeof reader.result)
                annotationsObject = JSON.parse(JSON.stringify(reader.result))
                console.log(annotationsObject)
                console.log(typeof annotationsObject)
            };
            reader.readAsText(this.files[0])

        }
        })
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-06-28 09:08:21

您当前正在使用

代码语言:javascript
复制
annotationsObject = JSON.parse(JSON.stringify(reader.result))

但是reader.result已经是一个string了-在它上面调用stringify是没有任何意义的。您的输出将只是您的输入,字符串。取而代之的是,只解析字符串,而不是首先对字符串进行序列化:

代码语言:javascript
复制
document.querySelector('input').addEventListener('change', function() {
  if (this.files && this.files[0]) {
    var reader = new FileReader();
    reader.onload = function(e) {
      console.log(typeof reader.result)
      annotationsObject = JSON.parse(reader.result);
      console.log(annotationsObject)
      console.log(typeof annotationsObject)
    };
    reader.readAsText(this.files[0])
  }
});
代码语言:javascript
复制
<input type="file">

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51073303

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档