Я использую API Gaug.es для отслеживания некоторых простых статистических данных, и я пытаюсь включить эти данные в свой бэкэнд. API возвращает данные в формате JSON, и, несмотря на все мои усилия, я всегда стараюсь бороться с этим форматом. Действительно, несколько лет назад я задал здесь вопрос, связанный с JSON, и ответ на этот вопрос послужил отправной точкой для этого, но мой старый, ржавый мозг, похоже, не может окунуться в эту проблему!Разбор данных JSON с Coldfusion
Вот что я до сих пор;
<cfhttp url="https://secure.gaug.es/gauges" method="GET" resolveurl="YES">
<cfhttpparam type="header" name="X-Gauges-Token" value="myAPIKey">
</cfhttp>
<cfset gaugeResult = deserializeJSON(cfhttp.filecontent)>
<cfdump var="#gaugeResult#">
<cfset formattedData = [] />
<cfset tmp = {} />
<cfloop collection=#gaugeResult# item="gauges">
<cfset tmp.title = gaugeResult[title] />
<cfset tmp.todayviews = gaugeResult[today]["views"] />
<cfset arrayAppend(formattedData,duplicate(tmp)) />
</cfloop>
<cfdump var=#formattedData# />
Прилагается скриншот gaugeResult cfdump.
По сути то, что мне нужно сделать, это взять идентификатор, название, сегодня> вид и сегодня> Люди цифры, которые я затем добавить в базу данных.
Текущий запрос возвращает ошибку «Variable TITLE undefined» - и мое ограниченное понимание в этой области оставило меня несколько озадаченным!
Название существует в массиве, поэтому вам нужно будет перебрать массив. Например, чтобы получить первый заголовок, вероятно, будет gaugeResult.gauges [1] .title –
@JedihomerTownend спасибо, вы действительно правы. Внесение изменений в мой код; И он возвращается правильно. Однако он возвращает только первый результат (предположительно из-за [1]. Если я удалю [1], он снова выдаст ошибку. Как я могу заставить его вернуть все результаты без необходимости отдельно ссылаться на строки (количество будет варьироваться) –
Lee