假设你上面两个json分别赋值给变量 $json1 和 $json2
十余年的宁阳网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整宁阳建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“宁阳网站设计”,“宁阳网站推广”以来,每个客户项目都认真落实执行。
$newJson = json_encode(
array_merge(
json_decode($json1, true),
array('shangpuSP' = json_decode($json2, true) )
)
);
先把两个json字符串都变成PHP的数组,这样两个数组可以用 PHP 的 array_merge来合并。
合并完了之后的数组再用一下PHP 的 json_encode 就得到你要的结果了。
具体过程如下 :
json_encode(
array_merge(
json_decode($json1),
json_decode($json2)
)
);
把数组变量放进 json_encode() 这个函数就可以输出json数据了,希望可以帮到你。
看代码没啥问题,最大的问题是,你要确认你获取的是JSON数组,然后确认JSON的结构,哪里有问题就直接打印出来看看。
PHP接收JSON格式的数据
在API服务中,目前流行采用json形式来交互。
给前端调用的接口输出Json数据,这个比较简单,只需要组织好数据,用json_encode($array) 转化一下,前端就得到json格式的数据。
接收前端提交的json数据稍微复杂一点,原因是:PHP默认识别的数据类型是application/x-标准的数据类型。因此,对型如text/xml 或者 soap 或者 application/octet-stream 和application/json格式之类的内容无法解析,如果用$_POST数组来接收就会失败!
此时可以使用$GLOBALS['HTTP_RAW_POST_DATA'] 或 file_get_contents('php://input') 来获取提交的数据
查看手册,可以发现$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST的区别:
$_POST:通过 HTTP POST 方法传递的变量组成的数组,是自动全局变量。
$GLOBALS['HTTP_RAW_POST_DATA'] :总是产生 $HTTP_RAW_POST_DATA 变量包含有原始的 POST 数据。此变量仅在碰到未识别 MIME 类型的数据时产生。$HTTP_RAW_POST_DATA 对于 enctype="multipart/form-data" 表单数据不可用。也就是说基本上$GLOBALS['HTTP_RAW_POST_DATA'] 和 $_POST是一样的。但是如果post过来的数据不是PHP能够识别的,你可以用 $GLOBALS['HTTP_RAW_POST_DATA']来接收,比如 text/xml 或者 soap 等等。
补充说明:PHP默认识别的数据类型是application/x-标准的数据类型。