0

我正在尝试显示带有符号 & 的搜索结果。但是当我从 php 渲染到 json & 转换为 &.

无论如何我可以阻止这种情况,或者在我在搜索栏中打印名称之前将其转换回&?

提前致谢!

编辑:HTML JS:

                {
              name: 'industries',
              prefetch: 'industries_json.json',
              header: '<h1><strong>Industries</strong></h1>',
              template: '<p>{{value}}</p>',
              engine: Hogan
            },

Industries_json.json(使用 json_encode 创建)

[{"id":42535,"value":"AUTOMOBILES &AMP; COMPONENTS","type":"industries"}]

输出json的php脚本:

    public function renderJSON($data){
    header('Content-type: application/json');
    echo json_encode($data);
}
4

3 回答 3

2

使用 html_entity_decode 函数,如...

之前的代码:

public function renderJSON($data){
    header('Content-type: application/json');
    echo json_encode($data);
}

输出:以字符串形式给出 html 代码,例如:appthemes &amp;Vantage search Suggest

之后的代码:

public function renderJSON($data){
    header('Content-type: application/json');
    $data = json_encode($data);
    echo html_entity_decode( $data );
}

输出:以字符串形式给出 html 代码,例如:appthemes & Vantage search Suggest

于 2013-10-07T16:01:56.553 回答
1

您面临的问题是 HTML 编码。您想要的是在将文本发送到客户端之前对其进行解码。仅解码 JSON 对象的文本属性(而不是整个 JSON 对象本身)非常重要。

这是 PHP 中 HTML 解码的参考:http: //php.net/manual/en/function.html-entity-decode.php

于 2013-08-25T13:33:43.870 回答
0

我会用javascript来做。获得 JSON 后,只需在 JSON 上使用 javascript 的替换功能,如下所示:

首先将其转换为字符串:

var jsonString=JSON.stringify(jsonData);

然后像这样替换 & 。

jsonString=jsonString("&amp","&");

然后再将其转换为 JSON obj;

jsonObj=JSON.parse(jsonString);

现在,您的 JSON 将拥有&而不是&amp.

下一步是什么 ?

做任何你需要做的事情jsonObj

于 2014-02-06T13:07:55.683 回答