|
|
|
|
|
|
188
|
$data = Arr::except($data, $this->filter);
|
188
|
$data = Arr::except($data, $this->filter);
|
|
189
|
// 再替换字段名
|
189
|
// 再替换字段名
|
|
190
|
foreach ($this->mapping_replace as $key_serv => $key_local) {
|
190
|
foreach ($this->mapping_replace as $key_serv => $key_local) {
|
|
191
|
- if (array_key_exists($key_serv, $data)) {
|
|
|
|
192
|
- $data[$key_local] = Arr::get($data, $key_serv);
|
|
|
|
193
|
- unset($data[$key_serv]);
|
|
|
|
|
|
191
|
+ if (isset($data[$key_serv])) {
|
|
|
|
192
|
+ $data[$key_local] = $data[$key_serv]; // 赋值给本地字段
|
|
|
|
193
|
+ unset($data[$key_serv]); // 删除原服务器字段,避免冲突
|
|
194
|
}
|
194
|
}
|
|
195
|
}
|
195
|
}
|
|
196
|
// json字符串 => json
|
196
|
// json字符串 => json
|
|
197
|
foreach ($this->json_fields as $field) {
|
197
|
foreach ($this->json_fields as $field) {
|
|
198
|
if (isset($data[$field]) && is_string($data[$field])) {
|
198
|
if (isset($data[$field]) && is_string($data[$field])) {
|
|
199
|
$data[$field] = json_decode($data[$field], true);
|
199
|
$data[$field] = json_decode($data[$field], true);
|
|
|
|
200
|
+ // 容错:若JSON解码失败,保留原字符串(避免数据丢失)
|
|
|
|
201
|
+ if (json_last_error() !== JSON_ERROR_NONE) {
|
|
|
|
202
|
+ Log::warning("JSON解码失败,字段: {$field},值: {$data[$field]}");
|
|
|
|
203
|
+ $data[$field] = $data[$field]; // 保留原字符串
|
|
|
|
204
|
+ }
|
|
200
|
}
|
205
|
}
|
|
201
|
}
|
206
|
}
|
|
202
|
return $data;
|
207
|
return $data;
|