Angular 2+:如何在 Angular 的 Typescript 组件中解析 json 数据
Posted
技术标签:
【中文标题】Angular 2+:如何在 Angular 的 Typescript 组件中解析 json 数据【英文标题】:Angular 2+ : How to parse json data in Typescript component in Angular 【发布时间】:2018-10-02 18:20:46 【问题描述】:我的 json 数据:
"Temp": [
"dt": 1485717216,
"temp":30,
"time":"05:17:55 PM"
]
上面的json我可以解析-
ngOnInit()
this._weather.dailyForecast()
.subscribe(mdata =>
let temp1 = mdata['Temp'].map(mdata => mdata.temp)
let time = mdata['Temp'].map(mdata => mdata.time)
但我在解析以下 json 数据时遇到问题-
"temp":30,
"time":"05:17:55 PM"
谁能告诉我如何解析json数据?
更新代码: 服务代码
export class WeatherService
constructor(private _http: HttpClient)
dailyForecast()
return this._http.get("----url----")
.map(result => result);
【问题讨论】:
你有什么问题? 你在使用HttpClient
模块吗?
你是使用http还是httpclient从服务器获取数据?如果您可以在 Angular 服务中发布代码,我可以为您提供更多帮助
我想绘制一个动态图 - 温度与时间,所以我得到了上述格式的数据,但在解析时会感到困惑
@RukshanDangalla 这是数组映射函数,不是可观察映射函数
【参考方案1】:
我认为 OP 在将响应作为对象而不是数组时遇到了问题。
您需要在使用自定义代码的情况下进行处理,并根据需要添加检查,
您还需要将 mdata 设置为 any
类型,因为它会有所不同。
在您的订阅中,
.subscribe((mdata :any) =>
if(mdata['Temp'])
let temp1 = mdata['Temp'].map(mdata => mdata.temp)
let time = mdata['Temp'].map(mdata => mdata.time)
else
let temp1 = mdata.temp;
let time = mdata.time;
【讨论】:
mdata.temp 无法识别 编译时? 不,“对象”类型上不存在临时文件以上是关于Angular 2+:如何在 Angular 的 Typescript 组件中解析 json 数据的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Angular cli 在 Angular 2 中导入电子
Angular 2+:如何在 Angular 的 Typescript 组件中解析 json 数据
如何在 Angular 世界之外发生更改时更新 Angular 2 Reactive 表单字段