如何转换数组中的 JSON 字符串。阵列中的阵列卡住了我。如何处理?

How to convert JSON string in Array. Array within Array stuck me. How to handle with it?

我有一个 JSON 字符串。我希望它被填充到数组中。这是我收到的数组。

我的 JSON 回复是:

{
    "model": "SyncData",
    "unique_id": "c12fb356f90d032b",
    "key": "sdjvnsdivbsnd",
    "sync_data": {
        "array_a": [{
            "a_fav": "true",
            "a_id": 1
        }, {
            "a_fav": "false",
            "a_id": 2
        }],
        "array_b": [{
            "b_fav": "false",
            "b_id": 8
        }],
        "c_array": [{
            "c_fav": "false",
            "c_id": 15996
        }],
        "patient_list_array": [{
            "unique_id": "sdvsdvsdvdsdv",
            "p_status": "false",
            "p_id": 1454943805215,
            "p_note": "2",
            "p_code": "8",
            "p_timestamp": 1454943805216,
            "p_name": "ABC XYZ",
            "p_status": 1,
            "p_room_no": "5"
        }],

        "array_d": [{
            "d_assigned_id": "30",
            "d_fav": "true"
        }]
    }
}

我想将所有这些数据存储在数组中,然后将其存储在数据库中。

用于可视化您的 JSON 字符串

的简单代码
<?php
$string = '{
    "model": "SyncData",
    "unique_id": "c12fb356f90d032b",
    "key": "sdjvnsdivbsnd",
    "sync_data": {
        "array_a": [{
            "a_fav": "true",
            "a_id": 1
        }, {
            "a_fav": "false",
            "a_id": 2
        }],
        "array_b": [{
            "b_fav": "false",
            "b_id": 8
        }],
        "c_array": [{
            "c_fav": "false",
            "c_id": 15996
        }],
        "patient_list_array": [{
            "unique_id": "sdvsdvsdvdsdv",
            "p_status": "false",
            "p_id": 1454943805215,
            "p_note": "2",
            "p_code": "8",
            "p_timestamp": 1454943805216,
            "p_name": "ABC XYZ",
            "p_status": 1,
            "p_room_no": "5"
        }],

        "array_d": [{
            "d_assigned_id": "30",
            "d_fav": "true"
        }]
    }
}';
$obj = json_decode($string);
print_r($obj);

这将输出:

stdClass Object
(
    [model] => SyncData
    [unique_id] => c12fb356f90d032b
    [key] => sdjvnsdivbsnd
    [sync_data] => stdClass Object
        (
            [array_a] => Array
                (
                    [0] => stdClass Object
                        (
                            [a_fav] => true
                            [a_id] => 1
                        )

                    [1] => stdClass Object
                        (
                            [a_fav] => false
                            [a_id] => 2
                        )

                )

            [array_b] => Array
                (
                    [0] => stdClass Object
                        (
                            [b_fav] => false
                            [b_id] => 8
                        )

                )

            [c_array] => Array
                (
                    [0] => stdClass Object
                        (
                            [c_fav] => false
                            [c_id] => 15996
                        )

                )

            [patient_list_array] => Array
                (
                    [0] => stdClass Object
                        (
                            [unique_id] => sdvsdvsdvdsdv
                            [p_status] => 1
                            [p_id] => 1454943805215
                            [p_note] => 2
                            [p_code] => 8
                            [p_timestamp] => 1454943805216
                            [p_name] => ABC XYZ
                            [p_room_no] => 5
                        )

                )

            [array_d] => Array
                (
                    [0] => stdClass Object
                        (
                            [d_assigned_id] => 30
                            [d_fav] => true
                        )

                )

        )

)

如果你想在数组中使用这个 json 字符串,你可以使用

json_decode($string,true);

请注意,json_decode 的第二个参数将 return 数组,如果您需要对象形式的结果而不是删除第二个参数 "true"。

您的代码:

$string = '{
    "model": "SyncData",
    "unique_id": "c12fb356f90d032b",
    "key": "sdjvnsdivbsnd",
    "sync_data": {
        "array_a": [{
            "a_fav": "true",
            "a_id": 1
        }, {
            "a_fav": "false",
            "a_id": 2
        }],
        "array_b": [{
            "b_fav": "false",
            "b_id": 8
        }],
        "c_array": [{
            "c_fav": "false",
            "c_id": 15996
        }],
        "patient_list_array": [{
            "unique_id": "sdvsdvsdvdsdv",
            "p_status": "false",
            "p_id": 1454943805215,
            "p_note": "2",
            "p_code": "8",
            "p_timestamp": 1454943805216,
            "p_name": "ABC XYZ",
            "p_status": 1,
            "p_room_no": "5"
        }],

        "array_d": [{
            "d_assigned_id": "30",
            "d_fav": "true"
        }]
    }
}';

$array = json_decode($string,true);
echo "<pre>";
print_r($array);

结果:

Array
(
    [model] => SyncData
    [unique_id] => c12fb356f90d032b
    [key] => sdjvnsdivbsnd
    [sync_data] => Array
        (
            [array_a] => Array
                (
                    [0] => Array
                        (
                            [a_fav] => true
                            [a_id] => 1
                        )

                    [1] => Array
                        (
                            [a_fav] => false
                            [a_id] => 2
                        )

                )

            [array_b] => Array
                (
                    [0] => Array
                        (
                            [b_fav] => false
                            [b_id] => 8
                        )

                )

            [c_array] => Array
                (
                    [0] => Array
                        (
                            [c_fav] => false
                            [c_id] => 15996
                        )

                )

            [patient_list_array] => Array
                (
                    [0] => Array
                        (
                            [unique_id] => sdvsdvsdvdsdv
                            [p_status] => 1
                            [p_id] => 1454943805215
                            [p_note] => 2
                            [p_code] => 8
                            [p_timestamp] => 1454943805216
                            [p_name] => ABC XYZ
                            [p_room_no] => 5
                        )

                )

            [array_d] => Array
                (
                    [0] => Array
                        (
                            [d_assigned_id] => 30
                            [d_fav] => true
                        )

                )

        )

)