回答編集履歴

2

chousei

2022/03/03 04:56

投稿

yambejp
yambejp

スコア115010

test CHANGED
@@ -1,7 +1,5 @@
1
1
  微妙にずれているかもしれませんが
2
2
  ```javascript
3
- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
4
- <script>
5
3
  const json=`
6
4
  [
7
5
  {

1

ダウンロード

2022/03/03 04:54

投稿

yambejp
yambejp

スコア115010

test CHANGED
@@ -53,4 +53,66 @@
53
53
  var csv=[0,1].map(x=>JSON.stringify(datas.map(y=>y[x])).replace(/^\[(.*?)\]$/,'$1')).join("\n");
54
54
  console.log(csv);
55
55
  </script>
56
- ``
56
+ ```
57
+
58
+ # ダウンロード
59
+ 命題がダウンロードだったので追記しておきます
60
+ ```javascript
61
+ const json=`
62
+ [
63
+ {
64
+ "id": "001",
65
+ "sex": "F",
66
+ "update_timestamp": "2019-01-23T13:40:00+09:00",
67
+ "education": [
68
+ {
69
+ "school": "A high school",
70
+ "admission_age": 16,
71
+ "majors": [
72
+ {
73
+ "major": "Math",
74
+ "score": 88
75
+ },
76
+ {
77
+ "major": "Science",
78
+ "score": 75
79
+ }
80
+ ]
81
+ },
82
+ {
83
+ "school": "A university",
84
+ "admission_age": 19,
85
+ "majors": [
86
+ {
87
+ "major": "Engineering",
88
+ "score": 67
89
+ }
90
+ ]
91
+ }
92
+ ]
93
+ }
94
+ ]
95
+ `;
96
+ const obj=JSON.parse(json);
97
+ const getAllValuesWithKey=(obj,key)=>{
98
+ var ret=[];
99
+ Object.entries(obj).forEach(ent=>{
100
+ if(ent[1] instanceof Object){
101
+ ret=ret.concat(getAllValuesWithKey(ent[1],ent[0]));
102
+ }else{
103
+ ret.push(ent.concat([key]));
104
+ }
105
+ });
106
+ return ret;
107
+ };
108
+ const datas=getAllValuesWithKey(obj);
109
+ const csv=[0,1].map(x=>JSON.stringify(datas.map(y=>y[x])).replace(/^\[(.*?)\]$/,'$1')).join("\n");
110
+
111
+ window.addEventListener('DOMContentLoaded', ()=>{
112
+ const link=Object.assign(document.createElement('a'),{
113
+ 'href':window.URL.createObjectURL(new Blob([csv])),
114
+ 'download':'test.csv',
115
+ });
116
+ link.click();
117
+ });
118
+ ```