繁体   English   中英

如何将JSON对象参数分配给打字稿中的某些值?

[英]How to assign JSON object parameters to some values in typescript?

我目前正在使用angular 2.0。 我有一个像这样的方法返回的json对象。

this.propertiesService.addSeriesToChart(this.testId).subscribe(result => {
        this.result = result;
        });

addSeriesToChart()正在使用中,它返回json对象。

在返回的结果中,我必须将一些空值分配给一些默认值,我正在尝试像

if (this.result != undefined && this.result != null) {
  this.result.json().channel.mark = "ABC"

但是json对象内部的mark参数似乎未设置为“ ABC”,它始终保持为null。 我在这里做错什么了吗?

假设您要分配来自json的data在组件类中有一个可变data 您可以使用output属性来发出您在订阅时收到的数据。

你可以这样做:

import { Component, Output, EventEmitter } from '@angular/core';

@Component({
  selector: 'user',
  template: '<div>Hi</div>'
})

export class AppComponent{
data:Data;
@Output() dataOutput:EventEmitter<Data> =
new EventEmitter<Data>()

this.propertiesService.addSeriesToChart(this.testId).subscribe(result => {
            this.data = result.json();
            this.dataOutput.emit(this.data);
            });
}

这里的Data将是您的模型,其中包含可以将json映射到的变量:

export class Data{
   id:number;
   name:string;
}

现在,为了在应用程序的其他位置使用上述AppComponent ,可以绑定事件:

<user (dataOutput)="receiveData($event)"></user>



 export class PageComponent {
     datareceived:Data;
      constructor(){}
    receiveData(data){
         this.datareceived=data;
    }

     getUIData(value: any) {
            for (var name in value.selected) { 
               if (this.datareceived!= undefined && this.datareceived!= null) { 
                  if (name == 'mark') 
                     //do whatever you feel like 
                 } 
              } 
          }
    }

我认为这将解决很多情况。 我知道这并不是您的json所提供的解决方案,而是一种简化的解决方案。 试试吧。

首先,您可以在发送响应时在服务时使用result.JSON()将对象转换为JSON,然后当您收集该JSON对象时,您必须将其转换为this.result = JSON.stringify(result)它适用于mi

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM