为了账号安全,请及时绑定邮箱和手机立即绑定

通过 PHP 脚本从 JSON 中提取文本,其中 JSON 输入未知

通过 PHP 脚本从 JSON 中提取文本,其中 JSON 输入未知

PHP
凤凰求蛊 2022-06-17 15:24:39
下面是用户要输入的 JSON,请注意用户可以输入任何 JSON 格式,我只是举个例子。我需要知道如何通过 PHP 脚本仅从 JSON 中提取文本。请注意 JSON 可以是任何形式或类型,可能不需要如下所示:{    "title": "rahul",    "date": [        {            "day": 25,            "month": "May",            "year": 2020        }    ],    "room": {        "class": "super",        "number": 666    }}我需要如下输出:title rahuldateday 25month Mayyear 2020roomclass supernumber 666我用过json_decode,但它没有正确地给我上面的输出。
查看完整描述

1 回答

?
ibeautiful

TA贡献1993条经验 获得超5个赞

json_decode()这将是最好的答案,它将解析任何有效的 JSON 字符串,并返回一个对象或一个数组。


鉴于您说过您可以拥有任何 JSON 结构,我创建了一个递归解决方案,它将为您提供所需的输出:


<?php


$inputJson = <<<JSON

{ "title": "rahul", "date": [ { "day": 25, "month": "May", "year": 2020 } ], "room": { "class": "super", "number": 666 } }

JSON;


if ($decoded = json_decode($inputJson, true)) {

    outputRecursive($decoded);

}


function outputRecursive($data) {

    foreach ($data as $key => $value) {

        if (is_array($value)) {

            if (!is_int($key)) {

                echo $key . PHP_EOL;

            }


            outputRecursive($value);

        } else {

            if (is_int($key)) {

                echo $value . PHP_EOL;


                continue;

            }

            echo $key . ' ' . $value . PHP_EOL;

        }

    }

}

控制台输出:


title rahul

date

day 25

month May

year 2020

room

class super

number 666


查看完整回答
反对 回复 2022-06-17
  • 1 回答
  • 0 关注
  • 119 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信