質問編集履歴
1
追加で調べたことを補足
title
CHANGED
@@ -1,1 +1,1 @@
|
|
1
|
-
JSON.parseする際に余分なプロパティを削除したい
|
1
|
+
TypeScript JSON.parseする際に余分なプロパティを削除したい
|
body
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
旧タイトル) JSON.parseする際に余分なプロパティを削除したい
|
2
|
+
|
1
3
|
### 前提・実現したいこと
|
2
4
|
JSONファイルからobjectにする際に、余分なプロパティを削除したい
|
3
5
|
### 該当のソースコード
|
@@ -20,4 +22,25 @@
|
|
20
22
|
console.logにて値を確認すると、personの中に["name"]以外のプロパティがある
|
21
23
|
|
22
24
|
元々Personには["name"]の他に["submitDate"]プロパティを設定してあり、受け取ったJSONにはこれがあったりなかったりします。これを受け取り時に削除したいです
|
23
|
-
今回は余分なプロパティが名前までわかっているので、delete person.submitDateで消しても問題ないですが、できれば未知のプロパティも消せるようにしたいです
|
25
|
+
今回は余分なプロパティが名前までわかっているので、delete person.submitDateで消しても問題ないですが、できれば未知のプロパティも消せるようにしたいです
|
26
|
+
|
27
|
+
### 追記
|
28
|
+
``` TypeScript
|
29
|
+
//json受け取り処理
|
30
|
+
const jsonString = rec[0].data.inputData
|
31
|
+
const newObject:Person[] = JSON.parse(jsonString)
|
32
|
+
|
33
|
+
//以下追加
|
34
|
+
//interfaceからは実行時に情報が得られないので、クラスを定義
|
35
|
+
class PersonClass implements Person{
|
36
|
+
name:''
|
37
|
+
}
|
38
|
+
const validation = new PersonClass()
|
39
|
+
const includeProps = Object.keys(validation)
|
40
|
+
//プロパティの文字列を配列の形で得たので、これを使ってプロパティの存在チェックが出来る
|
41
|
+
//newObject.mapで新しい配列を作ったり
|
42
|
+
//newObject.forEachで既存の配列に手を加えたり
|
43
|
+
|
44
|
+
|
45
|
+
```
|
46
|
+
冗長だと思いますが目的のプロパティを消す部分は達成できました。
|