Форматирование данных JSON с ColdFusion для HighCharts - PullRequest
3 голосов
/ 30 марта 2012

Итак, я работаю над круговой диаграммой, используя HighSlide и ColdFusion.

Чтобы упростить это, для данных ожидается строка, подобная этой:

data: [{name: 'Jane',y: 13}, {name: 'John',y: 23}, {name: 'Joe',y: 19}]


Что я сделал для этого, так это перебрал результаты моего запроса и создал следующую строку:

<cfloop query="getAreaCounts">
     <cfset areaList = listAppend(areaList, "{name: '#name#',y: #y#}")>
</cfloop>


Я знаю, что должно быть проще / умнееправильно?Так как это данные JSON, я решил, что могу просто сделать это:

<cfoutput>#SerializeJSON(getAreaCounts)#</cfoutput>


Но это возвращает строку JSON, подобную этой, которые не будут обрабатываться старшими диаграммами:

{"COLUMNS":["Y","NAME"],"DATA":[[8,"Area1"],[7,"Area2"],[1,"Area3"],[1,"Area4"]]}

Любая помощь, направившая меня в правильном направлении, была бы великолепна.Нужно ли копать глубже в JSON - как?

Ответы [ 2 ]

3 голосов
/ 30 марта 2012

Вы захотите преобразовать запрос в массив структур, а затем выполнить serializeJSON() для этого массива.

Ниже приведен метод, который я использую довольно часто при работе с большим количеством запросови JSON.Я думаю, что я получил это с сайта Бена Наделя, а затем преобразовал его в cfscript .. Я постараюсь отследить сообщение в блоге после того, как я отправлю этот ответ.сделать что-то вроде этого:

<cfset myJSON = queryToArray( getAreaCounts ) />
<cfoutput>#serializeJSON( myJSON )#</cfoutput>

РЕДАКТИРОВАТЬ: Вот сообщение в блоге Бена, который вдохновил метод выше: http://www.bennadel.com/blog/124-Ask-Ben-Converting-a-Query-to-an-Array.htm

1 голос
/ 30 марта 2012

Вам нужно что-то вроде этого (не проверено, но вы поняли идею)

<cfscript>
data = [{name='Jane',y=13],{name='John',y=23},{name='Joe',y=19}];
</cfscript>

<cfoutput>#serializeJson(data)#</cfoutput>

Вам необходимо создать массив структур Coldfusion (каждый с именами "name" и "y") .. затем сериализуйте это.То, что вы сериализуете выше, является объектом запроса.По вашему коду это выглядит так, как будто вы подразумевали для сериализации переменной "arealist" - но этот var, вероятно, тоже не будет корректным, потому что это не массив структур - это список строк.

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