簡體   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