php 嵌套 json数据,php如何在json里嵌套一个json

本文探讨了在PHP中遇到的JSON编码问题,特别是当对象包含数组时如何正确转换为JSON格式。通过调整代码,将订单信息从字符串转换为数组,并直接设置到对象中,解决了外部双引号导致的解析错误。解决方案是确保对象的属性值为数组,然后使用`json_encode`进行编码,以生成符合规范的JSON字符串。
摘要由CSDN通过智能技术生成

我创建了一个类

class EpayOrderPayRequest

{

public $platformId;

public $accountId;

public $orderInfos;

//方法是对应的get和set

}

//创建实例

$request = new EpayOrderPayRequest();

$request->setPlatformId("PlatformId");

$request->setAccountId("AccountId");

//orderInfo的内容是一个json格式

$orderInfo = array(

"goodsName" => "testgoods",

"goodsType" => "00",

"tradeAmount" => 0.02

);

$orderInfos = json_encode($orderInfo);

$request->setOrderInfos("[".$orderInfos."]");

$jsonStr = json_encode($request);

echo $jsonStr;

}

输出是这样的:

{

"platformId":"platformId",

"accountId":"accountId",

"orderInfos":

"[{"goodsName":"testgoods",

"goodsType":"00",

"tradeAmount":0.02"

}]"}

orderInfos中括号外面带了个双引号,导致json格式解析出差,问下有什么解决办法?

你是不是想要这样的,

f8cc79c84adad8859faca02a3cc3c581.png

76474b616147bbde26463a01b02e8a02.png

$orderInfo = array(

'goodsName' => 'testgoods',

'goodsType' => '00',

'tradeAmount' => 0.02

);

$a = array(

"platformId"=>"platformId",

"accountId"=>"accountId"

);

$a['orderInfo'] = $orderInfo;

$jsonStr = json_encode($a);

echo ($jsonStr);

我是根据你的随便弄了数组,你需要先把这两个数组合并,然后json_encode();

你最后想要输出的格式是什么?orderinfo赋值改成这样

$orderInfo[] = array(

"goodsName" => "testgoods",

"goodsType" => "00",

"tradeAmount" => 0.02

);

$orderInfos = json_encode($orderInfo);//这句去掉

只要是数组就能正确转换成json,不管是几维的,orderInfo保留数组格式,类的最终返回值统一成数组,最后转json。

试了下,对象包含数组的形式也可直接用json_encode,你把代码改成下面的

$orderInfo = array(

"goodsName" => "testgoods",

"goodsType" => "00",

"tradeAmount" => 0.02

);

$request->setOrderInfos($orderInfos);

$jsonStr = json_encode($request);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值