繁体   English   中英

通过JSON搜索以构建MySQL插入?

[英]Search through JSON to build MySQL Insert?

我正在尝试在我的网站上集成一个OpenID登录系统。 我使用了提供的代码,登录系统确实返回了我的数据,并且已成功将其存储在PHP中。

从OpenID返回的数据:

Array
(
    [family_name] => Doe
    [name] => John Doe
    [account_type] => BUSINESS
    [given_name] => John
    [address] => Array
        (
            [postal_code] => 12345
            [locality] => Test
            [region] => NE
            [country] => US
            [street_address] => 123 Main Street
        )

    [verified_account] => true
    [language] => en_US
    [zoneinfo] => America/Chicago
    [locale] => en_US
    [phone_number] => 5553891234
    [email] => johndoe@test.com
    [account_creation_date] => 2008-03-06
    [birthday] => 2000-01-01
    [age_range] => 18-25
) 

然后,我使用var_dump将JSON转换为数组。

在var_dump之后打印数据时,我的数据如下:

array(14) { ["family_name"]=> string(9) "Doe" ["name"]=> string(13) "John Doe" ["account_type"]=> string(8) "BUSINESS" ["given_name"]=> string(3) "John" ["address"]=> array(5) { ["postal_code"]=> string(5) "12345" ["locality"]=> string(5) "Test" ["region"]=> string(2) "NE" ["country"]=> string(2) "US" ["street_address"]=> string(32) "123 Main Street" } ["verified_account"]=> string(4) "true" ["language"]=> string(5) "en_US" ["zoneinfo"]=> string(15) "America/Chicago" ["locale"]=> string(5) "en_US" ["phone_number"]=> string(10) "5553891234" ["email"]=> string(20) "johndoe@test.com" ["account_creation_date"]=> string(10) "2008-03-06" ["birthday"]=> string(10) "2000-01-01" ["age_range"]=> string(5) "18-25" }

现在,我的问题变成了(这就是我的问题所在)如何遍历数组并仅提取数据? 我正在尝试从用于创建用户帐户的数据构建MySQL插入。

我宁愿不只是假设用户的姓氏将是存储在数组中的第一位。 有没有一种方法可以轻松地搜索数组并仅返回数据?

我看过print_r和其他一些方法,但是一切似乎都返回["family_name"]=> string(9) "Doe"而不是Doe

如果您具有JSON字符串,则可以使用json_decode()将其转换为数组。 然后,您可以使用常规数组语法获取任何属性的值。

例如。

$user_info = json_decode($json_string, true);
$family_name = $user_info["family_name"]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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