JSON响应问题
inbuild SerializeJSON
摆脱阵列数据JSON如下:JSON响应问题
<cfset retData = '{"username":"#session.username#","items":#serializeJson(items)#}'>
这样,在我得到的回应是:
{"username":"user1","items":["{\"s\": \"1\",\"f\": \"El\",\"m\": \"How are you\"}"]}
我试图消除backslashes
使用jsStringFormat
,但没有帮助..
尝试过这样的:
<cfset retData = '{"username":"#session.username#","items":#serializeJson(jsStringFormat(items))#}'>
但没有任何帮助,你们可以在正确的方向
不要把它设置为一个字符串点。首先将其设为结构,然后致电serializeJSON()
。根据这些数据,似乎items
已经是一个结构。
<cfset refData = { 'username' = '#session.username#', 'items' = #items# } />
<cfset refData = serializeJSON(refData) />
我试过了,但现在我收到一个错误:'消息\t无法将复杂对象类型数组转换为字符串 详细信息\t使用内置函数“serialize(Array):String”从数组创建字符串“。这里的项目是一个'Array' – voyeger 2014-09-21 07:10:07
做一个'cfdump'的项目并将问题的屏幕截图发布。从输出看,“items”看起来像是一个包含一个结构的元素的数组。 – 2014-09-21 13:32:55
此外,显示您使用的是抛出此错误的代码。我使用'
使用'deserializeJson'。 它可能会帮助你。
<cfset items = '["{\"s\": \"1\",\"f\": \"El\",\"m\": \"How are you\"}"]'>
<cfset items = #deserializeJson(items)#>
<cfset retData = '{"username":"user1","items":#serializeJson(items)#}'>
<cfoutput >
#retData#
</cfoutput>
为什么单引号呢? – 2014-09-20 20:23:36
单引号没有出现在被淘汰的json中,即使json是有效的,我在jsonlint.com上测试过 – voyeger 2014-09-20 20:25:32