[英]Is it possible to return json_encode() but as an array and not an object, so I can use `.filter()` or `.forEach()` methods easily
我只是想确保没有这样的事情......因为我找不到任何提到这个的东西:
目前,当我使用json_encode($array)
,我得到一个如下所示的json 对象:
{
"1": {"user_id":1,"test":"","user_name":"potato0","isok":"true"},
"2":{"user_id":2,"test":"","user_name":"potato1","isok":" true"},
"3":{"user_id":3,"test":"","user_name":"potato2","isok":" true"},
"4":{"user_id":4,"test":"","user_name":"potato3","isok":"locationd"}
}
我想运行.filter()
/ .forEach()
方法。
但它们不会在对象( {...}
)上运行,而是在数组( [...]
)上运行。
编辑:似乎不确定我得到了什么,所以这是一个真正的 var_dump 和 json_encode() 示例:
var_dump($array);
array (size=2)
'status' => boolean true
'data' =>
array (size=3)
'fruits' =>
array (size=9)
'fruit_id' => int 246
'fruit_name' => string 'banana' (length=15)
'vegtables' =>
array (size=9)
'veg_id' => int 253
'fruit_name' => string 'potato' (length=20)
echo json_encode(['status' => true, 'data' => $fruits]);
{
"status":true,
"data":{
"fruits":{
"fruit_id":246,
"fruit_name":"banana"
},
"vegtables":{
"veg_id":253,
"veg_name":"potato"
}
}
}
返回的 json 被定义为“对象”(使用typeof
检查)
** 我不愿意在 js 端将我的对象转换为数组,我知道这个“技巧”,我更喜欢从 php 获取一个 json 数组作为数组,请关注我的问题 **
您需要将主对象更改为数组。 我认为下面的代码就是你要找的。
您的输入:
var data = {
"1": {"user_id":1,"test":"","user_name":"potato0","isok":"true"},
"2":{"user_id":2,"test":"","user_name":"potato1","isok":" true"},
"3":{"user_id":3,"test":"","user_name":"potato2","isok":" true"},
"4":{"user_id":4,"test":"","user_name":"potato3","isok":"locationd"}
};
将对象转换为数组
var result = Object.keys(data).map(function(key) {
return data[key];
});
现在您可以对转换后的数组使用 Filter
var filtered = result.filter(row => { return row.user_id > 1; });
过滤后的结果是:
[{
"user_id": 2,
"test": "",
"user_name": "potato1",
"isok": " true"
},{
"user_id": 3,
"test": "",
"user_name": "potato2",
"isok": " true"
},{
"user_id": 4,
"test": "",
"user_name": "potato3",
"isok": "locationd"
}]
希望这是你正在寻找的,这里是工作演示链接: https : //playcode.io/282703?tabs=console&script.js&output
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.