为什么反序列化不会在Coldfusion中将JSON字符串转换为struct或array?

时间:2013-03-14 21:23:21

标签: arrays json serialization coldfusion struct

我正在尝试在Coldfusion8中反序列化JSON字符串。它似乎工作(没有错误),但我无法处理我得到的数据。

我的JSON字符串如下所示:

"{\"kundenliste\":{\"kundennummer\":\"1\",\"plz\":\"2\",\"rabatt\":\"3\",\"laenderkennzeichen\":\"4\",\"preisliste\":\"5\...

我可以这样做:

<cfset variables.import = DeserializeJSON(getModus.myJSONstring)>
<cfdump output="e:\dump.txt" label="catch" var="#IsArray(variables.import)#">
<cfdump output="e:\dump.txt" label="catch" var="#IsStruct(variables.import)#">
<cfdump output="e:\dump.txt" label="catch" var="#IsObject(variables.import)#">
<cfdump output="e:\dump.txt" label="catch" var="#IsDefined(variables.import.kundenliste)#">

结果:

{"kundenliste":{"kundennummer":"1","plz":"2","rabatt":"3","laenderkennzeich ...
NO
NO
NO
<<error>>

问题
反序列化时我做错了吗?我以为这将返回一个结构或数组,而不是一个字符串。怎么办?

感谢您的帮助!

1 个答案:

答案 0 :(得分:5)

原始JSON字符串无效。名称/值对周围的引号不应该像\"那样进行转义,这就是为什么它没有被正确解析的原因。输入字符串看起来应该更像是“结果”:

    {"kundenliste":{"kundennummer":"1"}}

该字符串的来源是什么?