From 62ef7cabf8ac91afbc2d4b74b2bb5c290894d5f2 Mon Sep 17 00:00:00 2001 From: Ingo Fischer Date: Tue, 3 Jan 2023 00:38:52 +0100 Subject: [PATCH] * detect json better --- main.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/main.js b/main.js index 3c0c890..720b175 100644 --- a/main.js +++ b/main.js @@ -40,16 +40,19 @@ function startAdapter(options) { const target = {}; let requestFields = {}; - if (typeof state.val === 'string' && state.val.startsWith('{') && state.val.endsWith('}')) { - try { - requestFields = JSON.parse(state.val) || {}; - } catch (err) { - adapter.log.info(`Ignore data for service call ${id} is no valid JSON: ${err.message}`); - requestFields = {}; + if (typeof state.val === 'string') { + state.val = state.val.trim(); + if (state.val.startsWith('{') && state.val.endsWith('}')) { + try { + requestFields = JSON.parse(state.val) || {}; + } catch (err) { + adapter.log.info(`Ignore data for service call ${id} is no valid JSON: ${err.message}`); + requestFields = {}; + } } } - // If a non-JSON value was set and we only have one relevant field, use this field as value + // If a non-JSON value was set, and we only have one relevant field, use this field as value if (fields && Object.keys(requestFields).length === 0) { const fieldList = Object.keys(fields); if (fieldList.length === 1 && fieldList[0] !== 'entity_id') {