如何解析ColdFusion中返回的JSON

时间:2014-08-07 19:28:13

标签: json parsing url coldfusion coldfusion-6

我确信这是一个相对简单的问题,但我似乎无法在网上找到一个简单的答案。

我有一些由cfhttp POST返回的JSON行,其中包含一个我要解析的图像URL并显示在我的ColdFusion页面中:

{
    "href": "http://server.arcgisonline.com/arcgis/rest/directories/arcgisoutput/ESRI_StreetMap_World_2D_MapServer/_ags_map734a6ad322dd493e84499d78f027d841.png",
    "width": 854,
    "height": 493,
    "extent": {
        "xmin": -8285407.015562119,
        "ymin": 4944008.4197687358,
        "xmax": -8220129.7934066672,
        "ymax": 4981691.8747132765,
        "spatialReference": {
            "wkid": 102100,
            "latestWkid": 3857
        }
    },
    "scale": 288895.27714399656
}

如何将“href”的值作为ColdFusion中变量的一部分,和/或可能有一个链接下载它的按钮?

编辑:我忘了提到我正在使用ColdFusion MX - 也称为版本6 - 因此我无法使用DeserializeJSON listed on Adobe's page

3 个答案:

答案 0 :(得分:4)

  

转换JSON(JavaScript Object Notation)字符串数据   表示CFML数据,例如CFML结构或数组。

https://wikidocs.adobe.com/wiki/display/coldfusionen/DeserializeJSON

答案 1 :(得分:2)

只需使用deserializeJSON()

解析cfhttp结果
<cfset getResult = deserializeJSON(result_Variable.filecontent)>

您可以使用&#34;#getResult.href#&#34;

获取href值

答案 2 :(得分:2)

  

我忘了提到我正在使用ColdFusion MX

啊,这会产生很大的不同! (除非标签中另有说明,否则大多数人会假设更新版本,如CF9 +)。

直到CF8才添加JSON支持。如果你搜索,仍然有一些旧的udf / cfc用于处理JSON。例如:

  • JSONDecode http://www.cflib.org表示可与MX6配合使用

  • JSONUtil.cfc适用于MX7 +。 可能开箱即用的MX6,或者经过一些修改。 This thread描述了如何使用JSONUtil进行编码。解码应该同样简单。只需创建一个实例并调用deserializeJSON,即:

    <!--- not tested --->
    <cfset util = createObject("component", "path.to.JSONUtil")>
    <cfset result = util.deSerializeJSON(yourJSONString)>
    

那就是说,ColdFusion MX的牙齿有点长no longer supported。您应该认真考虑升级或切换到开源Railo引擎。