是否可以根据用户提供的URL在JSON上添加查询?

时间:2017-10-18 19:31:48

标签: php json

我的问题是, 是否可以根据用户的URL来操纵JSON对象。提供?

例如, 假设我有一个简单的JSON:local/color_rgbval/colors

[
{
    color: "red",
    value: "#f00"
},
{
    color: "green",
    value: "#0f0"
},
{
    color: "blue",
    value: "#00f"
},
{
    color: "cyan",
    value: "#0ff"
}
]

我想只获取颜色为绿色的值。 所以用户只需输入local/color_rgbval/colors?=green (类似的东西)

2 个答案:

答案 0 :(得分:0)

所有这些都不能由JAVASCRIPT

1st:使用URL片段即。 #
网址看起来像 www.webstie.com#学校 www.webstie.com#大学

这样,URL更改不会导致刷新或重定向,

第二。添加 hashchange 事件,例如

window.addEventListener("hashchange", function(e){ 
   var currentURL = window.location.hash; // will give school ,college
   updateJson(currentURL )   .. write logic to update THE jsoN
});

答案 1 :(得分:0)

查看您发布的无效JSON代码段 -

你可以这样做;

您的JSON数据集:

$rawJson = '[
{
    "color": "red",
    "value": "#f00"
},
{
    "color": "green",
    "value": "#0f0"
},
{
    "color": "blue",
    "value": "#00f"
},
{
    "color": "cyan",
    "value": "#0ff"
}
]';

接下来,让我们解析这些数据并创建一个我们可以更轻松搜索的数组:

$jsonArray = json_decode($rawJson, true);

最后,让我们搜索给定的输入,在这种情况下:green

$searchFor = 'green';
$keyFound  = array_search($searchFor, array_column($jsonArray, 'color'));

if ($keyFound) {
    // answer
    $result = $jsonArray[$keyFound];

    var_dump($result);
}

进一步打破这种局面; array_column($jsonArray, 'color')将创建一个仅包含给定数组中颜色的数组。然后使用array_search我们将搜索给定的颜色并返回我们找到输入颜色的位置的索引/键。

如果找到了密钥,$jsonArray[$keyFound]会给我们正确答案。