2017-02-08 18 views
-1

JSONを返すサーバコールを作成した後にObservableを作成して返すAngular 2アプリにメソッドを書きました。ただし、JSONのフォーマットが正しくないため、返されたJSONを編集するには、.json()メソッドに送信する前に、すぐに修正する必要があります。これは、JSONのフォーマットが不適切なために現在エラーが発生しています。RxJSに保存されているデータを変更するにはどうすればよいですか?

具体的には、配列の閉じ括弧の後に現れるJSON内に誤ったコンマを見つけてそれを削除する必要があります。

私の質問

は何正確そのObservable.map機能は次のようになりますか?実際のJSON文字列を見つけて操作し、それを送信するにはどうすればよいですか?私はこのすべてには新しいので、詳細は高く評価されます。

const fix = (json: string) => { 
    // ... 
} 

あなたはこのような何かを行うことができます:それは非常に悪い考えだが

const things: Observable<Thing[]> = this.http.get('/api/get-things') 
    .map(response => response.text()) 
    .map(fix) 
    .map(fixedJson => JSON.parse(fixedJson) as Thing[]) 

あなたと仮定すると

getList(): Observable<Thing[]> { 
    let response = this.http.get('/api/get-things'); 
    let fixed = response.map(____WHAT GOES HERE?_____); 
    return fixed.map((r: Response) =>r.json as Thing[]); 
} 
+2

あなたが意味することは明確ではありませんが、観測可能なものの別のマップで十分であるようです。レスポンスボディを変更する必要がある場合や結果として生じるオブジェクトを変更する必要がある場合は、JSONメソッドを呼び出す前に実行してください。 – jonrsharpe

+0

フィードバックいただきありがとうございます。私は質問を編集して詳細を追加し、より具体的に私が望むものを記述しました。 –

+0

何を入れ​​ようとしましたか?デバッガを使用して試してみましたか?レスポンスオブジェクトのドキュメントを読んでください。特定の問題の[mcve]を与えてください。 – jonrsharpe

答えて

1

fix方法を持っています。 サーバーサイドコードを修正してください!

関連する問題