Как создать массив объектов из строки, возвращенной из SQL Query (вернуть единственное значение) - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь создать некоторые входные данные для ApexChart (гистограмма) из запроса SQL (типа: возвращать одно значение). Гистограмма будет принимать ввод данных в следующей форме:

[ {x:"1 author", y:15 }, {x:"3 authors", y:55}, {x:"15 authors", y:25} ]

Возвращение SQL аналогично следующему результату:

"[{x:"1", y:14},{x:"1", y:15},{x:"1", y:19}]"

Если я непосредственно скопирую SQL результат из SQL Разработайте консоль и вставьте ее в мой скрипт, она отлично работает, но это не самый чистый способ решения этой задачи. В идеале, данные, возвращаемые из этого запроса, лучше непосредственно считывать из элемента файла в Apex и автоматически анализировать в требуемом формате входных данных (т. Е. Массив объектов). Допустим, имя скрытого элемента - "P3_ITEM".

P3_ITEM.value

даст нам объединенный в строку результат с одним запросом SQL.

"[{x:"1", y:14},{x:"1", y:15},{x:"1", y:19}]"

удаляя начальные и конечные двойные кавычки не решит, потому что он все еще имеет тип string. и преобразование этой строки в массив объектов также не работает, потому что тогда это массив строк, а не объектов.

Итак, вопрос в том, как создать массив объектов, полученных из этого строкового значения (одиночный значение sql результат)?

1 Ответ

0 голосов
/ 25 апреля 2020

JSON .parse превратит строковый объект json в объект javascript.

Как обсуждалось в комментариях, ваш вывод недопустим JSON, поэтому это не может быть истолковано как таковое.

Правильный способ исправить это:

Рекомендованным способом было бы хранить ваши данные в допустимом формате JSON (это также позволило бы использовать SQL JSON функций) с использованием двойных кавычек вокруг клавиш.

[{"x":1, "y":14},{"x":1, "y":15},{"x":1, "y":19}]

Неправильный способ исправить это:

Вы можете использовать оценку для прямой оценки вашего результата как javascript код с использованием eval:

eval('[{x:"1", y:14},{x:"1", y:15},{x:"1", y:19}]');

и это , поэтому это плохо. Но ваша система просто не будет стандартной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...