2

我敢肯定这是一个相对简单的问题,但我似乎无法在网上任何地方找到一个简单的答案。

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

{
    "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 - 因此我不能使用Adob​​e 页面上列出的 DeserializeJSON

4

3 回答 3

4

将 JSON(JavaScript 对象表示法)字符串数据表示形式转换为 CFML 数据,例如 CFML 结构或数组。

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

于 2014-08-07T19:41:59.497 回答
2

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

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

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

  • http://www.cflib.org 上的JSONDecode说它适用于MX6

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

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

也就是说,ColdFusion MX 有点长,不再受支持。您应该认真考虑升级或切换到开源Railo引擎。

于 2014-08-11T21:23:33.047 回答
2

只需使用 deserializeJSON() 解析您的 cfhttp 结果

<cfset getResult = deserializeJSON(result_Variable.filecontent)>

您可以使用“#getResult.href#”获取href值

于 2014-08-08T07:24:25.247 回答