2016-12-20 31 views
0

私の現在のプロジェクトでは、jsonオブジェクトをtypescript配列に変換する必要があります。次のようにJSONは次のとおりです。jsonオブジェクトをtypescript配列に変換する

{ 
    "uiMessages" : { 
    "ui.downtime.search.title" : "Search Message", 
    "ui.user.editroles.sodviolation.entries" : "Violated SOD entries" 
    }, 
    "userInfo" : { 
    "login" : "fooUser", 
    "firstName" : "Foo", 
    "lastName" : "Bar", 
    "language" : "en" 
    }, 
    "appInfo" : { 
    "applicationName" : "foo", 
    "applicationVersion" : "6.1.0" 
    } 
} 

JSONがシリアライズされたJavaオブジェクトであるとuiMessages変数は、Javaのハッシュマップです。私は、uiMessageをuiMessageオブジェクトのTypescript配列に解析する必要があります。

はこれまでのところ、私はこれに着い:

@Injectable() 
export class BootstrapService { 

    constructor(private http: Http) {} 

    getBootstrapInfo() { 
    return this.http.get('api/foo') 
     .map(response => { 
     response.json() 
     }) 
    } 
} 

にはどうすれば最善これを行うのでしょうか?

+0

あなたは活字体で 'uiMessage'の定義を持っていますか? –

+0

作成しようとしているアレイのフォーマットを指定してください。 'uiMessages'はキーと値を持つオブジェクトです。配列から値へのインデックス付きリストだけの明示的なマッピングはありません。 –

+0

uiMessageは単純なキーと値のオブジェクトで、キーはたとえば "ui.dow​​ntime.search.title"で、値は "Search Message"です。 – Ronny176

答えて

0

はこれを試してみてください:

@Injectable() 
export class BootstrapService { 

    constructor(private http: Http) {} 

    getBootstrapInfo() { 
     return this.http.get('api/foo') 
      .map(response => { 
       var responseData = response.json(); 
       var result = []; 
       for (let item in responseData.uiMessages) { 
        // Create the uiMessage object here, not sure what its structure is 
        result.push({ 
         field: item, 
         message: responseData.uiMessages[item] 
        }); 
       } 
       return result; 
      }); 
    } 
} 
関連する問題