来自json的HTML实体导致输入字段

时间:2014-03-19 10:34:02

标签: javascript php json

从我的API中获取带有数据的json对象。特殊数据将转换为HTML实体(使用htmlspecialchars)。看起来像这样:

    {
        id: "0",
        title: "Hello & good day",
    }

但是,当我使用$ .getJSON获取数据并将数据插入输入值时,&仍然存在。

我该如何避免这种情况?

2 个答案:

答案 0 :(得分:2)

您可以创建一个虚拟元素,将HTML实体作为虚拟元素的html传递,然后将该虚拟元素的text()传递给input元素的值:

var $dummy = $('<div/>', { html: 'Hello &amp; good day'});
$('input').val($dummy.text());

JSFiddle demo

在一行中:

$('input').val($('<div/>', { html: 'Hello &amp; good day'}).text());

答案 1 :(得分:1)

如果您能够使用rawurlencode更改PHP以对文本进行编码,则可以在将字符串设置为输入值之前解码该字符串:

input.value = decodeURIComponent(jsonData.title);

(假设jsonData.title是来自响应的编码字符串。