php json_encode() 数组转JSON给JS代码中使用 出现转义、乱码等(PHP数组转为JS数组)

本文详细介绍了如何在PHP中将复杂数组转换为JSON格式,并提供了两种有效的解决方案来确保输出的JSON字符串能在JavaScript环境中正确解析,包括使用JSON_UNESCAPED_UNICODE选项和HTML实体解码方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

php 数组输出:dump($vipifArr);

array(10) {
  [0] => array(5) {
    ["id"] => int(11)
    ["price"] => float(0)
    ["vip_id"] => int(280)
    ["pid"] => int(315)
    ["type"] => int(3)
  }
  [1] => array(5) {
    ["id"] => int(12)
    ["price"] => float(2.5)
    ["vip_id"] => int(281)
    ["pid"] => int(315)
    ["type"] => int(3)
  }
  [2] => array(5) {
    ["id"] => int(13)
    ["price"] => float(3.5)
    ["vip_id"] => int(284)
    ["pid"] => int(315)
    ["type"] => int(3)
  }
  [3] => array(5) {
    ["id"] => int(14)
    ["price"] => float(0)
    ["vip_id"] => int(283)
    ["pid"] => int(315)
    ["type"] => int(3)
  }
  [4] => array(5) {
    ["id"] => int(15)
    ["price"] => float(0)
    ["vip_id"] => int(282)
    ["pid"] => int(315)
    ["type"] => int(3)
  }
  [5] => array(5) {
    ["id"] => int(16)
    ["price"] => float(0)
    ["vip_id"] => int(280)
    ["pid"] => int(315)
    ["type"] => int(2)
  }
  [6] => array(5) {
    ["id"] => int(17)
    ["price"] => float(25)
    ["vip_id"] => int(281)
    ["pid"] => int(315)
    ["type"] => int(2)
  }
  [7] => array(5) {
    ["id"] => int(18)
    ["price"] => float(35)
    ["vip_id"] => int(284)
    ["pid"] => int(315)
    ["type"] => int(2)
  }
  [8] => array(5) {
    ["id"] => int(19)
    ["price"] => float(0)
    ["vip_id"] => int(283)
    ["pid"] => int(315)
    ["type"] => int(2)
  }
  [9] => array(5) {
    ["id"] => int(20)
    ["price"] => float(0)
    ["vip_id"] => int(282)
    ["pid"] => int(315)
    ["type"] => int(2)
  }
}

php JSON输出:  $vipifArr=json_encode($vipifArr);

string(527) "[{"id":11,"price":0,"vip_id":280,"pid":315,"type":3},{"id":12,"price":2.5,"vip_id":281,"pid":315,"type":3},{"id":13,"price":3.5,"vip_id":284,"pid":315,"type":3},{"id":14,"price":0,"vip_id":283,"pid":315,"type":3},{"id":15,"price":0,"vip_id":282,"pid":315,"type":3},{"id":16,"price":0,"vip_id":280,"pid":315,"type":2},{"id":17,"price":25,"vip_id":281,"pid":315,"type":2},{"id":18,"price":35,"vip_id":284,"pid":315,"type":2},{"id":19,"price":0,"vip_id":283,"pid":315,"type":2},{"id":20,"price":0,"vip_id":282,"pid":315,"type":2}]"

JS输出 :

 $vipifArr=json_encode($vipifArr); 

 $this->assign('vipifArr',$vipifArr);

	var ksdk='{$vipifArr}';
	console.log(ksdk);

解决办法1:推荐

$treeJson = json_encode($data, JSON_UNESCAPED_UNICODE)

data: {$treeJson|raw},

解决办法2:

	var ksdk='{$vipifArr}';
	// console.log(ksdk);
	
	function HTMLDecode(text) { 
		var temp = document.createElement("em"); 
		temp.innerHTML = text; 
		var output = temp.innerText || temp.textContent; 
		temp = null; 
		return output; 
	} 
	var vipifArr = JSON.parse(HTMLDecode(ksdk))  
console.log(vipifArr)

已经转成为JS数组了

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值