From 3646880a22f699b6c4b5fcdab0100e02242eff86 Mon Sep 17 00:00:00 2001 From: echoyang7 <50300391+echoyang7@users.noreply.github.com> Date: Thu, 29 Aug 2024 17:05:12 +0800 Subject: [PATCH] Bugfix/json save with wrong format (#873) * fix,inspector request miss data * fix bug that json data save with wrong format * same bug --- .../src/views/datamanager/DataDetailPlainConfig.vue | 2 +- .../src/views/datamanager/DataDetailPlainJSON.vue | 2 +- lyrebird/mock/dm/__init__.py | 13 +++++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/frontend/src/views/datamanager/DataDetailPlainConfig.vue b/frontend/src/views/datamanager/DataDetailPlainConfig.vue index c1eaa9ce1..f824db249 100644 --- a/frontend/src/views/datamanager/DataDetailPlainConfig.vue +++ b/frontend/src/views/datamanager/DataDetailPlainConfig.vue @@ -130,7 +130,7 @@ export default { save () { const newData = {} Object.assign(newData, JSON.parse(this.editorCache.info)) - newData['json'] = this.editorCache.json + newData['json'] = JSON.parse(this.editorCache.json) this.$store.dispatch('saveDataDetail', newData) }, onJsonPathChange (payload) { diff --git a/frontend/src/views/datamanager/DataDetailPlainJSON.vue b/frontend/src/views/datamanager/DataDetailPlainJSON.vue index 99c3d0e5d..06fcabdee 100644 --- a/frontend/src/views/datamanager/DataDetailPlainJSON.vue +++ b/frontend/src/views/datamanager/DataDetailPlainJSON.vue @@ -130,7 +130,7 @@ export default { save () { const newData = {} Object.assign(newData, JSON.parse(this.editorCache.info)) - newData['json'] = this.editorCache.json + newData['json'] = JSON.parse(this.editorCache.json) this.$store.dispatch('saveDataDetail', newData) }, onJsonPathChange (payload) { diff --git a/lyrebird/mock/dm/__init__.py b/lyrebird/mock/dm/__init__.py index 376f4af4c..8587c9cdb 100644 --- a/lyrebird/mock/dm/__init__.py +++ b/lyrebird/mock/dm/__init__.py @@ -1415,10 +1415,15 @@ def activate(self, search_id, **kwargs): self.activated_group[search_id] = group_info # Apply config if config: - try: - self.activate_config = json.loads(config) - except Exception as e: - logger.error('Failed to parse the config, the config did not take effect!') + if isinstance(config, str): + try: + self.activate_config = json.loads(config) + except json.JSONDecodeError: + logger.error('Failed to parse the config, the config did not take effect!') + elif isinstance(config, dict): + self.activate_config = config + else: + logger.error('Config must be a JSON string or a JSON object!') application._cm.add_config(self.activate_config, type='dm', level=-1, apply_now=True) # TODO:After activate self._check_activated_data_rules_contains_request_data()