PHP利用数组构造JSON
2017-01-16 14:02
375 查看
问题起因
以往都是直接用构造数组的形式构造json例子:
$arr = array("A"=>"1","B"=>"2"); $arr = json_encode($arr); print_r($arr);
得到输出:
{"A":"1","B":"2","C":"3"}
然而此时要构造这样的json:
{ "table": [ { "id": "0", "flow": [ { "id": "0", "match": { "in-port": "1", "vlan-match": { "vlan-id": { "vlan-id-present": "true", "vlan-id": "20" } } }, "instructions": { "instruction": [ { "apply-actions": { "action": [ { "output-action": { "output-node-connector": "3", "max-length": "65535" }, "order": "1" }, { "pop-vlan-action": {}, "order": "0" } ] }, "order": "0" } ] }, "buffer_id": "65535", "installHw": "true", "barrier": "true", "strict": "true", "priority": "160", "idle-timeout": "0", "hard-timeout": "0", "table_id": "0" } ] } ] }
对于[] ,以及空的{}的如果构造是一个难题。
问题解决
访问到了一篇文章 php构造json的方法,并补充了构造空{}的方案构造空{}方案如下:
$arr = array("A"=>"1","B"=>"2","C"=>"3","D"=> new stdClass()); $arr = json_encode($arr); print_r($arr);
结果
{"A":"1","B":"2","C":"3","D":{}}
综合上述方案,构造上述方案,并得到解决
$post_data = array(); $post_data["table"][0]['id'] = "0"; $post_data["table"][0]['flow'][0]["id"] = "0"; $post_data['table'][0]['flow'][0]["match"]["in-port"] = "1"; $post_data['table'][0]['flow'][0]['match']['vlan-match']['vlan-id']['vlan-id-present'] = "true"; $post_data['table'][0]['flow'][0]['match']['vlan-match']['vlan-id']['vlan-id'] = "20"; $post_data['table'][0]['flow'][0]['instructions']['instruction'][0]['apply-actions']['action'][0]['output-action']['output-node-connector'] = "3"; $post_data['table'][0]['flow'][0]['instructions']['instruction'][0]['apply-actions']['action'][0]['output-action']['max-length'] = "65535"; $post_data['table'][0]['flow'][0]['instructions']['instruction'][0]['apply-actions']['action'][0]['order'] = "1"; $post_data['table'][0]['flow'][0]['instructions']['instruction'][0]['apply-actions']['action'][1]['pop-vlan-action'] = new stdClass(); $post_data['table'][0]['flow'][0]['instructions']['instruction'][0]['apply-actions']['action'][1]['order'] = "0"; $post_data['table'][0]['flow'][0]['instructions']['instruction'][0]['order'] = "0"; $post_data['table'][0]['flow'][0]['buffer_id'] = "65535"; $post_data['table'][0]['flow'][0]['installHw'] = "true"; $post_data['table'][0]['flow'][0]['barrier'] = "true"; $post_data['table'][0]['flow'][0]['strict'] = "true"; $post_data['table'][0]['flow'][0]['priority'] = "160"; $post_data['table'][0]['flow'][0]['idle-timeout'] = "0"; $post_data['table'][0]['flow'][0]['hard-timeout'] = "0"; $post_data['table'][0]['flow'][0]['table_id'] = "0"; $post_data = json_encode($post_data); echo $post_data;
相关文章推荐
- php 利用 json 传递数组之中文乱码最新解决办法
- php利用嵌套数组拼接与解析json的方法
- 在CakePHP中利用Javascript Helper把PHP数组转换为JSON
- php中利用函数json_decode将json转化为数组,返回为null
- 在PHP中使用键值对数组构造JSON数据
- php 利用嵌套数组拼接与解析json
- php构造json数组与对象
- PHP利用 JSON 将XML转换为数组
- 利用ajax实现与php(json数组)数据交互,并局部刷新页面
- 在CakePHP中利用Javascript Helper把PHP数组转换为JSON
- php 利用json_decode强制json数据转换成数组
- android,PHP解析JSON数组,JSONArray,JSONOject,乱码
- Php json_encode转换数组,值为null
- PHP解析Gson生成的Json数组
- PHP解析Gson生成的Json数组
- php解决json_encode输出GB2312中文问题 (数组)
- PHP 解析JSON数组
- JQuery插件第二十个:利用json数组即时创建明细列表
- jquery的ajax处理php返回数组,及json_encode中文问题
- PHP数组传递给JavaScript以及json_encode的gbk中文乱码的解决