取出json数据中的某一项组成一个数组?

发布于 2022-09-01 15:23:56 字数 1228 浏览 9 评论 0

"jobs": [
                    {
                        "name": "iOS开发工程师",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "广州",
                        "mark": "group:1"
                    },
                    {
                        "name": "金融集团CEO",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "北京",
                        "mark": "group:2"
                    },
                    {
                        "name": "运维开发工程师",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "上海",
                        "mark": "group:3"
                    },
                    {
                        "name": "资深视觉设计师",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "广州",
                        "mark": "group:4"
                    }
                    ]

怎么取出json数据中的mark这一项,例如我需要取group:4这个值得时候就可以用数组下标的方式,或者我怎么单独取出group:4这个数值?如果我想取出group后面的值呢,例如group:1取出1,用group的值组成一个数组。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

无风消散 2022-09-08 15:23:56
$arr = json_decode($jobs);
for ($i=0; $i<count($arr); $i++)
  $result[] = $arr[$i]['mark'];
不喜欢何必死缠烂打 2022-09-08 15:23:56

javascript比较多,很少写PHP了,可能PHP的数组有更好的API

<?php
$jsonString = '[
                    {
                        "name": "iOS开发工程师",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "广州",
                        "mark": "group:1"
                    },
                    {
                        "name": "金融集团CEO",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "北京",
                        "mark": "group:2"
                    },
                    {
                        "name": "运维开发工程师",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "上海",
                        "mark": "group:3"
                    },
                    {
                        "name": "资深视觉设计师",
                        "salary": "10k-15k",
                        "url": "www.baidu.com",
                        "desc": "广州",
                        "mark": "group:4"
                    }
                    ]';



function GetSubArray($jsonString, $mark) {
    // json字符串转数组
    $array = json_decode($jsonString, true);
    // 创建需要返回的新数组
    $newArray = [];
    // 遍历数组,根据$mark条件,添加到新数组中去
    for ($i = 0; $i < count($array); $i++) {
        if ($array[$i]['mark'] === $mark) {
            array_push($newArray, $array[$i]);
        }
    }
    return $newArray;
}

var_dump(GetSubArray($jsonString, 'group:4'));

?>
停顿的约定 2022-09-08 15:23:56

有一个词叫 JSONPath 懂的自然懂

来一段Java的
clipboard.png

java版
https://github.com/alibaba/fastjson/wiki/JSONPath

js/php
http://goessner.net/articles/JsonPath/

只是传播一个概念,当然追求效率自己写也不是很复杂,就是一个遍历

未央 2022-09-08 15:23:56
php
$arr = array_column(json_decode($json, true),'mark'); echo $arr[3];//group:4
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文