質問編集履歴

2

文字化け修正

2017/12/12 02:29

投稿

lovelydai
lovelydai

スコア38

test CHANGED
File without changes
test CHANGED
@@ -30,13 +30,13 @@
30
30
 
31
31
  ```Javascript
32
32
 
33
- "1","2017","TEST",
33
+ ""1"",""2017"",""TEST"",
34
34
 
35
35
  "{"room_assign":[{"week_idx":"1","period_idx":"1"},{"week_idx":"2","period_idx":"2"}]}",
36
36
 
37
37
  "{"room_equipment":[{"equipment_idx":"1"},{"equipment_idx":"2"}]}",
38
38
 
39
- "Null","Null"
39
+ ""Null"",""Null""
40
40
 
41
41
  ```
42
42
 

1

文字化け修正

2017/12/12 02:29

投稿

lovelydai
lovelydai

スコア38

test CHANGED
File without changes
test CHANGED
@@ -12,11 +12,29 @@
12
12
 
13
13
  ```JSON
14
14
 
15
+ ""1"",""2017"",""TEST"",
16
+
17
+ "{""room_assign"":[{""week_idx"":""1"",""period_idx"":""1""},{""week_idx"":""2"",""period_idx"":""2""}]}",
18
+
19
+ "{""room_equipment"":[{""equipment_idx"":""1""},{""equipment_idx"":""2""}]}",
20
+
21
+ ""Null"",""Null""
22
+
23
+ ```
24
+
25
+
26
+
27
+ しかし、どうしてもダブルクォーテーションが一つしかつかないので、現在はこんな感じになっています。
28
+
29
+ room_assignとroom_equipmentオブジェクト内の全ての「”」を「””」に変えればよさそうですが、どうすればいいしょうか?もしくは、JSON.Stringifyのオプションreplacer等で処理する方法もあり得ますか?(色々やってみましたが、keyの値を修正するとエラーでしたし、replacerで変えたら、「/"」 がついてしまいます。)
30
+
31
+ ```Javascript
32
+
15
33
  ”"1”",”"2017”",”"TEST”",
16
34
 
17
- "{""room_assign"":[{""week_idx"":""1"",""period_idx"":""1""},{""week_idx"":""2"",""period_idx"":""2""}]}",
35
+ "{"room_assign":[{"week_idx":"1","period_idx":"1"},{"week_idx":"2","period_idx":"2"}]}",
18
-
36
+
19
- "{""room_equipment"":[{""equipment_idx"":""1""},{""equipment_idx"":""2""}]}",
37
+ "{"room_equipment":[{"equipment_idx":"1"},{"equipment_idx":"2"}]}",
20
38
 
21
39
  ”"Null”",”"Null”"
22
40
 
@@ -24,210 +42,192 @@
24
42
 
25
43
 
26
44
 
45
+
46
+
27
- しかしどうしてもダブルクォテーションが一つかつかないので、現在はこんな感じになっています。
47
+ 現在問題のコドを以下に添付します。
28
-
29
- room_assignとroom_equipmentオブジェクト内の全ての「”」を「””」に変えればよさそうですが、どうすればいいしょうか?もしくは、JSON.Stringifyのオプションreplacer等で処理する方法もあり得ますか?(色々やってみましたが、keyの値を修正するとエラーでしたし、replacerで変えたら、「/"」 がついてしまいます。)
48
+
49
+
30
50
 
31
51
  ```Javascript
32
52
 
33
- ”"1”",”"2017”",”"TEST”",
34
-
35
- "{"room_assign":[{"week_idx":"1","period_idx":"1"},{"week_idx":"2","period_idx":"2"}]}",
36
-
37
- "{"room_equipment":[{"equipment_idx":"1"},{"equipment_idx":"2"}]}",
38
-
39
- ”"Null”",”"Null”"
53
+ for(var key in data.result.rooms)
54
+
55
+ {
56
+
57
+ contents[key] = []; //配列の要素数を指定する
58
+
59
+ // オブジェクト値を文字列に変換する。
60
+
61
+
62
+
63
+ var room_idx = data.result.rooms[key].room_idx;
64
+
65
+ var year = data.result.rooms[key].year;
66
+
67
+ var customer_idx = data.result.rooms[key].customer_idx;
68
+
69
+ var room_code = data.result.rooms[key].room_code;
70
+
71
+ var room_name = data.result.rooms[key].room_name;
72
+
73
+ var facility_idx = data.result.rooms[key].facility_idx;
74
+
75
+ var capacity = data.result.rooms[key].capacity;
76
+
77
+ var memo = data.result.rooms[key].memo;
78
+
79
+ var is_used = data.result.rooms[key].is_used;
80
+
81
+ var room_assign = [];
82
+
83
+ var room_equipment = [];
84
+
85
+ var deleter = data.result.rooms[key].deleter;
86
+
87
+ var deleted = data.result.rooms[key].deleted;
88
+
89
+
90
+
91
+ // loop room_assigns with _idxs
92
+
93
+ for(var assign_key in data.result.room_assigns)
94
+
95
+ {
96
+
97
+ var target_customer_idx = data.result.room_assigns[assign_key].customer_idx;
98
+
99
+ var target_year = data.result.room_assigns[assign_key].year;
100
+
101
+ var target_room_idx = data.result.room_assigns[assign_key].room_idx;
102
+
103
+ var week_idx = JSON.stringify(data.result.room_assigns[assign_key].week_idx);
104
+
105
+ var period_idx = JSON.stringify(data.result.room_assigns[assign_key].period_idx);
106
+
107
+
108
+
109
+ if(customer_idx === target_customer_idx && year === target_year && room_idx === target_room_idx)
110
+
111
+ {
112
+
113
+ room_assign.push({week_idx, period_idx});
114
+
115
+ }
116
+
117
+ }
118
+
119
+
120
+
121
+ // ダブルクォーテーション処理要,"を””へ、または、Stringの場合””で囲むなどなど
122
+
123
+ var room_assign_parse = JSON.stringify({room_assign});
124
+
125
+
126
+
127
+ // loop room_equipments with _idxs
128
+
129
+ for(var equipment_key in data.result.room_equipments)
130
+
131
+ {
132
+
133
+ var target_customer_idx = data.result.room_equipments[equipment_key].customer_idx;
134
+
135
+ var target_year = data.result.room_equipments[equipment_key].year;
136
+
137
+ var target_room_idx = data.result.room_equipments[equipment_key].room_idx;
138
+
139
+ var equipment_idx = JSON.stringify(data.result.room_equipments[equipment_key].equipment_idx);
140
+
141
+
142
+
143
+ if(customer_idx === target_customer_idx && year === target_year && room_idx === target_room_idx)
144
+
145
+ {
146
+
147
+ room_equipment.push({equipment_idx});
148
+
149
+ }
150
+
151
+ }
152
+
153
+
154
+
155
+ var room_equipment_parse = JSON.stringify({room_equipment});
156
+
157
+
158
+
159
+ // Insert values into contents array
160
+
161
+ contents[key].push(room_idx, year, customer_idx, room_code, room_name, facility_idx, capacity, memo, is_used, room_assign_parse_replace, room_equipment_parse_replace, deleter, deleted);
162
+
163
+
164
+
165
+ var room_parse = JSON.stringify(Object.values(contents[key]),
166
+
167
+ // Nullがある場合は、””に変える。
168
+
169
+ function(key, value)
170
+
171
+ {
172
+
173
+ if (value === null || value =='')
174
+
175
+ {
176
+
177
+ return '""';
178
+
179
+ }
180
+
181
+ else if(Number.isFinite(value))
182
+
183
+ {
184
+
185
+ return '"' + value + '"';
186
+
187
+ }
188
+
189
+ else if(typeof value === 'string')
190
+
191
+ {
192
+
193
+ return '"' + value + '"';
194
+
195
+ }
196
+
197
+ else if(typeof value === 'boolean')
198
+
199
+ {
200
+
201
+ return '"' + value + '"';
202
+
203
+ }
204
+
205
+ return value;
206
+
207
+ }
208
+
209
+ );
210
+
211
+ // 文字列配列をJSONとして加工する。
212
+
213
+ contents[key] = JSON.parse(room_parse);
214
+
215
+ }
216
+
217
+
218
+
219
+ console.log("contents = ",contents);
220
+
221
+
222
+
223
+ // File APIのBlobのパラメータに投げるために形を整形する。
224
+
225
+ var csvContents = contents.map(function(l){return l.join(',')}).join('\r\n');
226
+
227
+ console.log("cvsContents = ",csvContents);
40
228
 
41
229
  ```
42
230
 
43
-
44
-
45
-
46
-
47
- 現在、問題のコードを以下に添付します。
48
-
49
-
50
-
51
- ```Javascript
52
-
53
- for(var key in data.result.rooms)
54
-
55
- {
56
-
57
- contents[key] = []; //配列の要素数を指定する
58
-
59
- // オブジェクト値を文字列に変換する。
60
-
61
-
62
-
63
- var room_idx = data.result.rooms[key].room_idx;
64
-
65
- var year = data.result.rooms[key].year;
66
-
67
- var customer_idx = data.result.rooms[key].customer_idx;
68
-
69
- var room_code = data.result.rooms[key].room_code;
70
-
71
- var room_name = data.result.rooms[key].room_name;
72
-
73
- var facility_idx = data.result.rooms[key].facility_idx;
74
-
75
- var capacity = data.result.rooms[key].capacity;
76
-
77
- var memo = data.result.rooms[key].memo;
78
-
79
- var is_used = data.result.rooms[key].is_used;
80
-
81
- var room_assign = [];
82
-
83
- var room_equipment = [];
84
-
85
- var deleter = data.result.rooms[key].deleter;
86
-
87
- var deleted = data.result.rooms[key].deleted;
88
-
89
-
90
-
91
- // loop room_assigns with _idxs
92
-
93
- for(var assign_key in data.result.room_assigns)
94
-
95
- {
96
-
97
- var target_customer_idx = data.result.room_assigns[assign_key].customer_idx;
98
-
99
- var target_year = data.result.room_assigns[assign_key].year;
100
-
101
- var target_room_idx = data.result.room_assigns[assign_key].room_idx;
102
-
103
- var week_idx = JSON.stringify(data.result.room_assigns[assign_key].week_idx);
104
-
105
- var period_idx = JSON.stringify(data.result.room_assigns[assign_key].period_idx);
106
-
107
-
108
-
109
- if(customer_idx === target_customer_idx && year === target_year && room_idx === target_room_idx)
110
-
111
- {
112
-
113
- room_assign.push({week_idx, period_idx});
114
-
115
- }
116
-
117
- }
118
-
119
-
120
-
121
- // ダブルクォーテーション処理要,"を””へ、または、Stringの場合””で囲むなどなど
122
-
123
- var room_assign_parse = JSON.stringify({room_assign});
124
-
125
-
126
-
127
- // loop room_equipments with _idxs
128
-
129
- for(var equipment_key in data.result.room_equipments)
130
-
131
- {
132
-
133
- var target_customer_idx = data.result.room_equipments[equipment_key].customer_idx;
134
-
135
- var target_year = data.result.room_equipments[equipment_key].year;
136
-
137
- var target_room_idx = data.result.room_equipments[equipment_key].room_idx;
138
-
139
- var equipment_idx = JSON.stringify(data.result.room_equipments[equipment_key].equipment_idx);
140
-
141
-
142
-
143
- if(customer_idx === target_customer_idx && year === target_year && room_idx === target_room_idx)
144
-
145
- {
146
-
147
- room_equipment.push({equipment_idx});
148
-
149
- }
150
-
151
- }
152
-
153
-
154
-
155
- var room_equipment_parse = JSON.stringify({room_equipment});
156
-
157
-
158
-
159
- // Insert values into contents array
160
-
161
- contents[key].push(room_idx, year, customer_idx, room_code, room_name, facility_idx, capacity, memo, is_used, room_assign_parse_replace, room_equipment_parse_replace, deleter, deleted);
162
-
163
-
164
-
165
- var room_parse = JSON.stringify(Object.values(contents[key]),
166
-
167
- // Nullがある場合は、””に変える。
168
-
169
- function(key, value)
170
-
171
- {
172
-
173
- if (value === null || value =='')
174
-
175
- {
176
-
177
- return '""';
178
-
179
- }
180
-
181
- else if(Number.isFinite(value))
182
-
183
- {
184
-
185
- return '"' + value + '"';
186
-
187
- }
188
-
189
- else if(typeof value === 'string')
190
-
191
- {
192
-
193
- return '"' + value + '"';
194
-
195
- }
196
-
197
- else if(typeof value === 'boolean')
198
-
199
- {
200
-
201
- return '"' + value + '"';
202
-
203
- }
204
-
205
- return value;
206
-
207
- }
208
-
209
- );
210
-
211
- // 文字列配列をJSONとして加工する。
212
-
213
- contents[key] = JSON.parse(room_parse);
214
-
215
- }
216
-
217
-
218
-
219
- console.log("contents = ",contents);
220
-
221
-
222
-
223
- // File APIのBlobのパラメータに投げるために形を整形する。
224
-
225
- var csvContents = contents.map(function(l){return l.join(',')}).join('\r\n');
226
-
227
- console.log("cvsContents = ",csvContents);
228
-
229
- ```
230
-
231
231
  何かいい方法がありましたらぜひ教えてください。
232
232
 
233
233
  宜しくお願い致します。