将 JSON 接口转换为数组
Posted
技术标签:
【中文标题】将 JSON 接口转换为数组【英文标题】:convert JSON interface to array 【发布时间】:2019-05-09 01:52:56 【问题描述】:我有一个接口类和 JSON 文件,我想将其转换为列表并对其进行处理。例如,从 JSON 中的每个对象获取Racename
到列表\数组中。
可能吗?
这就是界面:
interface IRunners
Racename: string;
Category:number;
Gender:string;
Work:string;
FullName:string;
Rank:number;
Point:number;
Numparticipant:number;
rankparticipant:number;
precentagePart:string;
NumRaces:number;
RaceTime:string;
rankCat:number;
PointCat:number;
RaceDate:string;
这是 JSON 文件 (Runners.json
):
[
"Racename":"A1","Category":34,"Gender":"זכר","Work":"AMDOCS","FullName":"Simon Work ","Rank":1,"Ponit":1,"Numparticipant":0,"rankparticipant":0,"precentagePart":"0","NumRaces":1,"RaceTime":"2018-10-18T00:34:20","rankCat":1,"PointCat":1,"RaceDate":"2018-10-05"
]
我的订阅方式如下:
this.runnerService.getRunners().subscribe(
runners=>
this.runners = runners;
this.filteredCompetitions = this.runners;
this.filteredRunners = this.runners;
我想将runners
JSON 转换为一个数组,以便进行一些更改并从中获取一些数据。
我是 Typescript 和 Angular 的新手,所以我可能会犯一些错误。
【问题讨论】:
发布样本输出(数组),你想要什么 Typescript JSON string to class的可能重复 @Sachink 在我的帖子开头用一个例子更新了我的问题 您想迭代 IRunners 成员吗?似乎runners json已经是一个列表(Runners.json)。那么,你能更清楚你想要什么吗? @ArthurSilva 正是.. 【参考方案1】:您可以使用Array#map()。
// Assumes runners.json is a file in the same directory as this file
const jsonArray = require("./runners.json")
// // returns ["A1"]
const listOfRacenames = jsonArray.map(d => d.Racename)
【讨论】:
表示我需要根据您的建议更改界面? 您是否尝试从 JSON 文件生成 TypeScript 接口?目前尚不清楚您从哪里开始以及您希望在哪里结束。 作为一个新手,我很确定自己要做什么,但我想最终迭代 JSON 并从其中的每个对象中获取一些数据 在这种情况下,我上面的回答会做你需要做的事情。还有Array#forEach(),如果您想对每个 JSON 对象执行一些任意操作 - 即,您不想返回结果。让我知道这是否有意义。 有道理,目前唯一的问题是我的 JSON 在不同的文件中(runners.json
),我不确定我能否完全按照您的建议实现它。我错了吗? 10 倍顺便说一句...以上是关于将 JSON 接口转换为数组的主要内容,如果未能解决你的问题,请参考以下文章