我正在尝试使用sign&amp ;;显示搜索结果在他们中。但是当我从php渲染到json&转换为& amp。
无论如何我可以阻止它,或者在我在搜索栏中打印名称之前将其转换回&?
提前致谢!
编辑: 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 & COMPONENTS","type":"industries"}]
输出json的php脚本:
public function renderJSON($data){
header('Content-type: application/json');
echo json_encode($data);
}
答案 0 :(得分:2)
使用html_entity_decode函数,如...
之前的代码:
public function renderJSON($data){
header('Content-type: application/json');
echo json_encode($data);
}
输出:在字符串中提供html代码,例如:appthemes &
Vantage搜索建议
代码之后:
public function renderJSON($data){
header('Content-type: application/json');
$data = json_encode($data);
echo html_entity_decode( $data );
}
输出:在字符串中提供html代码,例如:appthemes&amp; Vantage搜索建议
答案 1 :(得分:1)
您面临的问题是HTML编码。您想要的是在将文本发送到客户端之前对其进行解码。重要的是,您只能解码JSON对象的文本属性(而不是整个JSON对象本身)。
以下是PHP中HTML解码的参考:http://php.net/manual/en/function.html-entity-decode.php
答案 2 :(得分:0)
我会用javascript来做。获得JSON之后,只需在JSON上使用javascript的replace函数,如下所示:
首先将它转换为字符串:
var jsonString=JSON.stringify(jsonData);
然后像这样更换&amp; amp。
jsonString=jsonString("&","&");
然后再次将其转换为JSON obj;
jsonObj=JSON.parse(jsonString);
现在,您的JSON将&
而不是&
。
下一步是什么?
对jsonObj