我学习JSON现在已经运行到一个问题:JSON字符串替换
我使用这样的代码来吐约和数据的数组:
<?php
$requiredFieldsArray = array();
$results = mysql_query("select account_id, display_name, id from field
where account_id = $holdAcctID and required_flag = 1");
while($result = mysql_fetch_assoc($results))
{
$requiredFieldsArray[] = $result;
}
?>
<script language="javascript">
var requiredFieldsPRS = <?php echo "new Array(". json_encode($requiredFieldsArray).")"; ?>;
</script>
}
它输出这样的:
var requiedFieldsPRS = new Array([{"account_id":"3","display_name":"Project Requested By","id":"15"},{"account_id":"3","display_name":"Project Title","id":"18"},{"account_id":"3","display_name":"Project Type","id":"19"},{"account_id":"3","display_name":"Banner Details","id":"20"},{"account_id":"3","display_name":"Email to Me","id":"2910"}]);;
在我的代码我怎么能去掉“[“和”]“从数组的开始和结束,所以它会出现这样的?
var requiedFieldsPRS = new Array({"account_id":"3","display_name":"Project Requested By","id":"15"},{"account_id":"3","display_name":"Project Title","id":"18"},{"account_id":"3","display_name":"Project Type","id":"19"},{"account_id":"3","display_name":"Banner Details","id":"20"},{"account_id":"3","display_name":"Email to Me","id":"2910"});
注:开闭括号都消失了在上面的输出。
这工作完美 - 谢谢! – user1176783 2012-02-09 17:20:05
这可能是不可能的,但我会问,除此之外,上面的方法删除'[]',删除键周围的引号,但让它们围绕值吗?例如:{“account_id”:“3”,“display_name”:“Project Requested By”,“id”:“15”}会输出为{account_id:“3”,display_name:“Project Requested By”,id: “15”} – user1176783 2012-02-09 17:55:21
@ user1176783你可以用一个正则表达式很容易地做到这一点。尝试像'preg_replace('/“([^”] +)“:/','$ 1:',trim(json_encode($ requiredFieldsArray),'[]'))' – Paulpro 2012-02-09 18:18:58