Я пытаюсь разобрать данные Coldfusion JSON, чтобы сделать его "нормальный" ColdFusion:Синтаксического Coldfusion JSON с помощью функции яваскрипта - неперехваченный ReferenceError: WddxRecordset не определен
JSON{"ROWCOUNT":3,"COLUMNS":["ROWID","REL","DATE","FOA","TITLE","APPRECEIPE","OPENING","KEYWORDS","DOC","PURPOSE","APP","NAME","PURPOSE"],"DATA":{"ROWID":[24842,24841,23780],"REL":["032","031","108"],
...
Обысканных на веб и нашел эту ссылку:
http://www.tysoncadenhead.com/blog/parsing-coldfusion-json-on-the-client-side#.V-UpKfkrKUk
Он предлагает использовать эту функцию:
Object.prototype.parseCFJSON = function() {
var result = [],
data = this;
for (var j = 0; j < data.DATA.length; j++) {
result[j] = {};
for (var i = 0; i < data.COLUMNS.length; i++) {
result[j][data.COLUMNS[i].toLowerCase()] = data.DATA[j][i];
}
}
return result;
};
Вот мой код
<cfset jsonURL = SerializeJSON(SmartGuideSearchRet,true)>
<cfset URLd = #SmartGuideSearchRet#> //My CF Struct
<script>
<cfoutput>
var #toScript(URLd,"URLd")#;
</cfoutput>
Object.prototype.parseCFJSON = function() {
var result = [],
data = this;
for (var j = 0; j < data.DATA.length; j++) {
result[j] = {};
for (var i = 0; i < data.COLUMNS.length; i++) {
result[j][data.COLUMNS[i].toLowerCase()] = data.DATA[j][i];
}
}
return result;
};
ujsonURL = URLd.parseCFJSON();
console.log(ujsonURL);
</script>
Моя консоль дает мне эту ошибку Uncaught ReferenceError: WddxRecordset is not defined
Когда я пытаюсь кормить данные JSON ColdFusion этой функции так:
<script>
<cfoutput>
var #toScript(URLd,"URLd")#;
</cfoutput>
Object.prototype.parseCFJSON = function() {
var result = [],
data = this;
for (var j = 0; j < data.DATA.length; j++) {
result[j] = {};
for (var i = 0; i < data.COLUMNS.length; i++) {
result[j][data.COLUMNS[i].toLowerCase()] = data.DATA[j][i];
}
}
return result;
};
ujsonURL = jsonURL.parseCFJSON();
console.log(ujsonURL);
</script>
Я получаю эту ошибку:
Uncaught TypeError: Cannot read property 'length' of undefined
на этой линии
for (var j = 0; j < data.DATA.length; j++) {
я делаю что-то неправильно, и я действительно тупик. Любая помощь будет оценена по достоинству. Я мог бы использовать функцию js совершенно неправильно (все еще изучая).
Извините, я испортил свой комментарий: во втором фрагменте: jsonURL все еще определен, не так ли? Вы пытались вывести вашу переменную данных в консоли, чтобы увидеть, что именно передается функции? – Esten
@ Когда я пытаюсь перейти к нему, я получаю эти ошибки. – Ren44
что я говорю, это если вы помещаете 'console.log (this)' перед условием 'for', где это ошибки. В основном это говорит о том, что он не может найти значение для 'data.DATA', поэтому мне любопытно, что значение' this' равно – Esten