Browse Source

适配多级json配置文件

psto 2 years ago
parent
commit
a205618e0f
1 changed files with 46 additions and 0 deletions
  1. 46 0
      Modules/OpcData/Http/Controllers/Api/OPCDataTurboController.php

+ 46 - 0
Modules/OpcData/Http/Controllers/Api/OPCDataTurboController.php

@@ -36,6 +36,9 @@ class OPCDataTurboController extends BaseController
             return $this->error($response, $error_info);
             return $this->error($response, $error_info);
         } else {
         } else {
             $data = json_decode($response);
             $data = json_decode($response);
+//            $data = $this->data_process($data);
+//            dd($data);
+//            return $data;
             if ($data == null) {
             if ($data == null) {
                 return $this->error(500, preg_replace('/<[^>]*>/','',$response));
                 return $this->error(500, preg_replace('/<[^>]*>/','',$response));
             } else {
             } else {
@@ -69,6 +72,49 @@ class OPCDataTurboController extends BaseController
         return $data;
         return $data;
     }
     }
 
 
+    private function data_process($data) {
+        $data = is_object($data) ? get_object_vars($data) : $data;
+        $data_arr = [];
+        foreach ($data as $key => $val) {
+            $arr = is_object($val) ? get_object_vars($val) : $val;
+            if (is_array($arr)) {
+                $arr = $this->data_process(($arr));
+//                dd($arr);
+            }
+//            $arr[$key] = round($val, 2);
+            $data_arr[$key] = $arr;
+            if (isset($data_arr['val']) && $data_arr['val'] != '') {
+                $data_arr[$key] = round($data_arr['val'], 2);
+            }
+        }
+        return $data_arr;
+
+//        dd($arr);
+//        $data = (array)$data;
+//        $process_arr = [];
+//        foreach ($data as $key=>$val ) {
+//            if ($val)
+//            if ($val == 'val') {
+//                $data[$key] = round($val);
+//                return;
+//            }
+////            foreach ($val as $k=>$v) {
+////                $this->data_process($v);
+////                $vv = (array)$v;
+////                dd($vv['val']);
+////            }
+////            $dd = (array)$val;
+////            $process_arr[$key] = $this->data_process($val);
+////            print(gettype($this->data_process($val)));
+//
+////            if ($child_data['val']) {
+////                $child_data['val'] = round($child_data, 2);
+////            }
+////            dd($data[$key]);
+////            dd(round($data[$key]['val'], 2));
+//        }
+//        return $process_arr;
+    }
 
 
     /**
     /**
      * Display a listing of the resource.
      * Display a listing of the resource.