javascript - 解码json PHP查找仅输出包含POST字符串值的数组
问题描述
我正在尝试制作一个简单的 JSON 检索器。
所以这就是我想要做的。当我输入例如日本时。我将数据发布到 php。我希望它加载它拥有的 json 并在数组中搜索包含这个国家日本的值
将只包含包含此值的结果的较小的缩减 json 数组发送回页面。
关键是国家,示例 json
{
"1": {
"country": "America",
"Name": "Harry",
"Age": "41"
},
"2": {
"country": "America",
"Name": "ben",
"Age": "40"
},
"3": {
"country": "Japan",
"Name": "taka",
"Age": "48"
},
"4": {
"country": "Japan",
"Name": "John",
"Age": "41"
},
"5": {
"country": "America",
"Name": "Ted",
"Age": "41"
},
"6": {
"country": "America",
"Name": "Simon",
"Age": "41"
}
}
var country = $(".country").val();
$.ajax ({
url: json.php,
type: 'POST',
data: {
'find': country,
},
success: function (results) {
console.log(results);
},
fail: function(data) {
console.log( data.responseText );
console.log( 'Request Failed' + data.statusText );
}
})
<input name="country" class="country" type="text" placeholder="type country"></input>
<?php
header('content-type: application/json; charset=utf-8');
header("access-control-allow-origin: *");
$jsonurl = "data.json";
$json = file_get_contents($jsonurl);
$find = $_POST["find"];
$decode = json_decode($json, true);
$results = array_filter($decode[''], function($country) {
return $country['country'] == $find;
});
var_dump($results);
任何帮助,将不胜感激...
解决方案
这是您可以使用它来满足您的要求的代码示例。
$my_json = '{
"1": {"country": "America","Name": "Harry","Age": "41"},
"2": {"country": "America","Name": "ben","Age": "40"},
"3": {"country": "Japan","Name": "taka","Age": "48"},
"4": {"country": "Japan","Name": "John","Age": "41"},
"5": {"country": "America","Name": "Ted","Age": "41"},
"6": {"country": "America","Name": "Simon","Age": "41"}
}';
$json_arr = json_decode($my_json);
$item = array();
foreach($j as $k=>$struct) {
if ('Japan' == $struct->country) {
$item[$k] = $struct;
}
}
echo 'Object Array form::';
echo '---------------------------';
print_r(array_values($item));
echo 'Json form::';
echo '---------------------------';
echo json_encode(array_values($item));
推荐阅读
- r - 基于列表元素的计算
- android - 使用 react native 更改应用布局后是否需要再次提交应用?
- ironpython - 为什么我可以从 IronPython 而不是 Python.NET 访问此 API?
- xml - XML Schema - 根元素找不到元素的声明
- c++ - 训练感知器模型
- laravel - Laravel 没有正确发出 Guzzle HTTP POST 请求
- java - 使用 xml 中的 Sailpoint 规则将当前日期添加到我们从数据库中提取的报告中
- php - 如何在 php 中设置 api 令牌?
- swift - WatchOS - 后台模式下的 startDeviceMotionUpdates
- java - update-alternatives java 不会更新 /etc/alternatives 中的所有符号链接