Я пытаюсь использовать SerializeJSON(), чтобы превратить экземпляр CFC в строку, которую я могу хранить в базе данных, а затем снова вытащить ее обратно.ColdFusion SerializeJSON создает пустые значения
Проблема у меня используется следующий код:
<cfdump var="#THIS#">
<!--- Convert CFC to JSON --->
<cfset thisJSON = SerializeJSON(THIS)>
<cfdump var="#DeserializeJSON(thisJSON)#">
дает мне следующее:
Красный дамп показывает CFC, с массивом называется controls
с В нем 7 элементов, каждый из которых является еще одним простым CFC. Когда я запускаю serializeJSON
, а затем выгружаю результат этого, после передачи его обратно через deserializeJSON
, пункты 3-7 превратились в пустые строки.
Вот JSON:
{
"MESSAGE":"",
"CONTROLS":
[
{
"INDEX":"1.0",
"NAME":"maxP11D",
"SELWHERE":"",
"DEF":"7940.0",
"MMD":true,
"ORDER":"7",
"APP":"",
"PRE":"",
"MAXCAP":"35946.0",
"FORMAT":"pound",
"VALUE":"",
"DESC":"List price exc FRF & VED",
"MINCAP":"7939.0",
"MINVAL":"7939.0",
"MAXVAL":"35946.0",
"TYPE":"range",
"TITLE":"P11D"
},
{
"INDEX":"2.0",
"NAME":"Y13Taxat22",
"SELWHERE":"",
"DEF":"0.0",
"MMD":true,
"ORDER":"6",
"APP":" pa",
"PRE":"Tax at 20%",
"MAXCAP":"1904.1099853515625",
"FORMAT":"pound",
"DESC":"Personal tax rate",
"VALUE":"",
"MINVAL":"0",
"MINCAP":"0.0",
"MAXVAL":"1904.1099853515625",
"TYPE":"range",
"TITLE":"Company car tax"
},
"",
"",
"",
"",
""
],
"SELECTRESTRICT":"
(taxtype<6)AND ([email protected]@)\r\nAND t.model NOT LIKE @%407%@\r\nAND
t.model NOT LIKE @% [email protected]\r\nAND t.model != @107 3 [email protected]\r\nAND
t.model != @107 5 [email protected]\r\nORDER BY \r\nt.model = @%iOn%@
DESC,\r\nt.model = @107 3 door [email protected] DESC,\r\nt.model = @107 5 door [email protected]
DESC,\r\nt.model LIKE @%207%@ DESC,\r\nt.model LIKE @%RCZ%@
DESC,\r\nt.model LIKE @%308%@ DESC,\r\nt.model LIKE @%3008%@
DESC,\r\nt.model LIKE @%4007%@ DESC,\r\nt.model = @508 [email protected]
DESC,\r\nt.model = @508 [email protected] DESC,\r\nt.model = @508 [email protected]
DESC,\r\nt.model LIKE @%5008%@ DESC,\r\nt.model LIKE @%807%@
DESC,\r\nt.model LIKE @%Bipper%@ DESC,\r\nt.model LIKE @%Partner%@
DESC,\r\nt.model ASC
",
"SHOWNOTES":true,
"MYSQL": {
"WHERE":"",
"COLS":"
t.maxP11D, t.Y13Taxat22, t.Y13Taxat40, t.CO2gpkm,
t.fuelConsumptionDf, t.bodyStyle, t.fuelType,
",
"EXCLUDE":""
}
}
Почему бы первые 2 пунктов преобразования успешно, но оставшиеся 5 изменений в строки?
Я уверен, что этот код использовался для работы, я недавно обновился до CF 9.0.1, у кого-то еще была проблема с JSON в 9.0.1?
Думаю, нам нужно будет увидеть размытую часть компонентов. Я также думаю, что возможно # thisJSON # может дать вам дополнительные подсказки. –
Размытая часть - это просто путь к компоненту, например «path.to.component», как в 'var t = new path.to.component()'. И я сделал дамп '# thisJSON #', и массив элементов управления выглядит примерно так: '' CONTROLS ": [{...}, {...}," "," "," "," " , ""] ', поэтому вы можете видеть, что 5 элементов в конце строки json - это просто пустые строки –
, поэтому никаких специальных символов, никаких подчеркиваний ... просто blah +. + бла +. + blah() для всех из них правильно? И все они выглядят одинаково для формы? Думаю, я ищу что-то не стандартное, что парсер может задохнуться или оценить неправильно. –