php 从字符串和数组递归地提取JSON数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php 从字符串和数组递归地提取JSON数据相关的知识,希望对你有一定的参考价值。

<?php

function extractData($source, &$output) {
    $sourceType = gettype($source);
    echo "Trying to determine source type..$sourceType\n";

    echo "Extract data:\n";

    switch($sourceType){
    case "array":
        echo "Goin' to iterate an array..\n";
        foreach($source as $key => $value)
        {
            extractData($value, $output[$key]);
        }
        break;

    case "string":
        echo "Goin' to decode JSON from string..\n";

        $decoded = extractJson($source);

        if($decoded) {
            echo "Decoded!\n";
            extractData($decoded, $output);
        }
        else {
            echo "Failed to decode JSON, output string.\n";
            $output = $source;
        }
        break;

    case "integer":
        echo "Skip extraction, output value\n";
        $output = $source;
        break;

    default:
        echo "Failed to extract any data, undetermined type..$sourceType\n";
    }

    return;
}

function extractJson($string) {
    $decoded = json_decode($string, true);

    if (json_last_error() == JSON_ERROR_NONE) return $decoded;
    else return null;
}

echo "Start:\n";
$output=[];
$source = file_get_contents(__DIR__."/DataRaw/json.json");

$extracted=extractData($source, $output);
print_r($output);

以上是关于php 从字符串和数组递归地提取JSON数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 从 JSON 嵌套列表和字符串数组中提取值

Google BigQuery SQL:从 JSON(列表和数组)中提取数据到列中

从 JSON 数组中的字符串中提取字段

递归解析 JSON

PHP:从 XML 字符串中提取数据并添加到数组

PHP从mysql中取出多组数据 如何加入数组中并转成JSON数组