我的问题是, 是否可以根据用户的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
(类似的东西)
答案 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]
会给我们正确答案。