生成 JSON 数组


Generate JSON array

我想用PHP生成一个JSON数组,但它不能很好地工作。

我的PHP数组看起来像这样:

protected $resultArray = array("1.0" => 0, "1.3" => 0);

然后我这样做:

return json_encode($resultArray);

但是我得到了这个:

var array = [{"1.0":2,"1.3":1}];

为什么"被替换为"

quot;是一个引号字符("(,编码为HMTL。 json_encode() 不会生成 HTML 编码序列。

return json_encode($resultArray);中将return替换为echo,您将亲眼看到这一点。

返回的字符串很可能被进一步传递给通过htmlspecialchars()htmlentities()运行它的函数,如果您将其放入 HMTL 上下文中,这是使用它的正确方法。

如果只需要输出 json_encode() -ed 字符串,请使用不同的查看器类。我不知道 TYPO3,但我想你应该使用 JsonView ;按原样传递$resultArray,它会为您调用json_encode()

我想你可以使用 etend 库,例如在 wamp 服务器中,我测试了这段代码,它工作正常

   $str = "<div style='position:relative'><img src='/assets/ui/success.png' /><span 
   style='position:relative;top:-15px;'>Nachricht empfangen!</span></div>";
   echo json_encode(array('prompt' => $str));

//输出

//{"prompt":"<div style='position:relative'><img src=''/assets'/ui'/success.png' '/><span   style='position:relative;top:-15px;'>Nachricht empfangen!<'/span><'/div>"}

谢谢大家的帮助!

解决方案是(仅适用于拼写错误 3(。为了在视图中获得正确正确的 JSON-Array,必须通过以下方式改进 JS 代码:

var array = {f:format.htmlentitiesDecode(value:chartarray)};