【问题标题】:Get data from "remote" json to current json ionic 3从“远程”json获取数据到当前json ionic 3
【发布时间】:2018-06-05 01:40:39
【问题描述】:

我有一个这样的对象

 mapsToSync = {to:this.token,fils:[{src:"",md5:""}]};

在这里我想用资产中的 json 填充文件

 this.http.get('../assets/fills.json').map(res => res.json()).subscribe(data => {
            this.mapsToSync.fils.push(data.fills);
        }); 

而fills.json是

{
    "fills":[
        {"src":"","md5":""},
        {"src":"","md5":""},
        {"src":"","md5":""}
    ]
}

我的问题是这个。我的对象现在是这样的:

{
to:this.token,
fils:[{src:"",md5:""},[{src:"",md5:""},{src:"",md5:""},{src:"",md5:""}]]
};

我想要

  {
    to:this.token,
    fils:[{src:"",md5:""},{src:"",md5:""},{src:"",md5:""},{src:"",md5:""}]
    };

如果尝试操作我返回的数据,例如 data.length -> 未定义的长度。所以数据还没有准备好。我必须使用异步等待功能?

【问题讨论】:

    标签: angular ionic-framework ionic3


    【解决方案1】:

    由于您的 mapsToSync.filsdata.fills 具有相同的数组结构,您也可以直接使用 concat 功能合并它们。

     this.http.get('../assets/fills.json').map(res => res.json()).subscribe(data => {
    
    this.mapsToSync.fils=this.mapsToSync.fils.concat(data.fills);
    
    
            }); 
    

    这样,您现有的数据将与新数据一起保留

    【讨论】:

    • 但在声明中我有 mapsToSync = {to:this.token,fils:[{src:"",md5:""}]};。所以如果我这样声明:mapsToSync = {to:this.token,fils:[{src:"somePath",md5:"dfgfhdh4234456"}]};。我将丢失有关其 src 和填充的信息。有什么办法推动?
    • 有一个错误。你必须分配它: this.mapsToSync.fils = this.mapsToSync.fils.concat(data.fills);
    • 是的,我只是错过了,现在已经更新了答案
    • 谢谢。这就是答案
    猜你喜欢
    • 2018-05-13
    • 2021-11-28
    • 2018-09-14
    • 1970-01-01
    • 1970-01-01
    • 2019-01-25
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    相关资源
    最近更新 更多