繁体   English   中英

是否可以返回 json_encode() 但作为数组而不是对象,所以我可以轻松使用 `.filter()` 或 `.forEach()` 方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM