[英]Need help parsing JSON with PHP to build an URL
我有一个看起来像这样的json文件:
{
"name": "Star_Wars",
"Level": true,
"condition": "HOT",
"actions": [
{
"index": 0,
"name": "Sword_hit",
"expectedModelName": "SwordModel",
"params": [
{
"name": "LANGUAGE",
"values": [
{
"value": "GB"
}
]
},
{
"name": "PLANET_VERSION",
"values": [
{
"value": "HUTTA"
}
]
}
],
"newParameters": [],
"checks": []
},
{
"index": 1,
"name": "Sword_bash",
"expectedModelName": "SwordModel2",
"params": [
{
"name": "LANGUAGE",
"values": [
{
"value": "IT"
}
]
},
{
"name": "PLANET_VERSION",
"values": [
{
"value": "SCHNUTTA"
}
]
}
],
"newParameters": [],
"checks": []
}
]
我试图用PHP解析它并从中构建URL。 每个“操作”都是一个URL,参数位于“参数”部分中。 因此,这两个URL应该是:
index0:LANGUAGE = GB&PLANET_VERSION = HUTTA
索引1:LANGUAGE = IT&PLANET_VERSION = SCHNUTTA
到目前为止,我的代码如下:
<?php
$json = file_get_contents("data.json");
$jsonIterator = new RecursiveIteratorIterator(
new RecursiveArrayIterator(json_decode($json, TRUE)),
RecursiveIteratorIterator::SELF_FIRST);
echo"http://www.myurl.de/test.php?";
foreach ($jsonIterator as $key => $val) {
if(is_array($val)) {
echo "$key:\n";
} else {
echo "$key=$val&";
}
}
?>
它按设计工作,但不符合要求;-)我只需要“参数”来构建url。 但是,如何实现仅针对“参数”中的“名称”和“值”的条件?
请检查这个简单的解决方案:
$data = json_decode($json);
$urls = array();
foreach($data->actions as $k1=>$v1) {
$urls[$k1] = '';
foreach($v1->params as $k2=>$v2) {
$urls[$k1].= $v2->name.'='.$v2->values[0]->value.'&';
}
$urls[$k1] = rtrim($urls[$k1],'&');
}
print_r($urls);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.