我想用PHP生成一个JSON数组,但它不能很好地工作。
我的PHP数组如下所示:
protected $resultArray = array("1.0" => 0, "1.3" => 0);
然后我这样做:
return json_encode($resultArray);
然后我得到了这个:
var array = [{"1.0":2,"1.3":1}];
为什么"替换为"
?
答案 0 :(得分:2)
quot;
是一个编码为HMTL的引号字符("
)。 json_encode()
不会生成HTML编码序列。
将return
替换为echo
中的return json_encode($resultArray);
,您可以自行查看。
最有可能将返回的字符串进一步传递给通过htmlspecialchars()
或htmlentities()
运行它的函数,如果将它放入HMTL上下文中,这是使用它的正确方法。
如果只需要输出json_encode()
- ed字符串,请使用其他查看器类。我不知道TYPO3,但我想你应该使用JsonView
;按原样传递$resultArray
,它会为您调用json_encode()
。
答案 1 :(得分:1)
我认为您可以在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>"}
答案 2 :(得分:0)
谢谢你的帮助!
解决方案是(仅适用于拼写错误3)。要在视图中获得正确的JSON-Array,必须通过以下方式改进JS代码:
var array = {f:format.htmlentitiesDecode(value:chartarray)};