Python в PHP |Строка в многомерный объект Json в массив - PullRequest
0 голосов
/ 16 октября 2018

У меня есть скрипт Python, который возвращает объект в виде строки.Я вызываю этот скрипт на python с помощью php, а затем распечатываю результат с помощью var_dump(json_decode($result)) и получаю это (это нужный объект, который я хочу, поэтому мой код на python работает должным образом):

string (467) "{" userData ": {" geburtsdatum ":" PMS_2018-01-01 "," anrede ":" PMS_Herr "," ID ":" 1 "," nachname ":" PMS_Nachname1 "," Test ": {"tel ":" PMS_Tel1 "," postalOptIn ": 0," postal ":" S3_Postal1 "," email ":" PMS_EMail1 "}," vorname ":" PMS_Vorname1 "}}"

Итаккак вы можете видеть его строку на стороне PHP.Но как мне теперь преобразовать его в объект и создать из него многомерный массив в php?

Если вам нужна дополнительная информация, просьба добавить ее.

Я пытался:

json_decode($result, true);
json_decode($result);
$response = (array) $result;

все, что я получаю, это массив с 1 индексом и целым объектом в нем как значением.

Объект генерируется так на стороне питона:

for message in consumer:
        if message.key == str.encode(sys.argv[1]):
            returnValue = message.value #this here is an byte obj from external system

consumer.close()

print(returnValue.decode("latin-1"))

Редактировать 2 и решение

После долгих поисков я обнаружил, что служба, которую я использую (3d Party), возвращает результат из скрипта python с json_encode().Я удалил это, и теперь этот код работает:

$array = json_decode($response, TRUE);

    return var_dump($array);

1 Ответ

0 голосов
/ 16 октября 2018

Поскольку это строка, вы можете декодировать ее следующим образом:

$string =  '{"userData": {"geburtsdatum": "PMS_2018-01-01", "anrede": "PMS_Herr", "ID": "1", "nachname": "PMS_Nachname1", "Test": {"tel": "PMS_Tel1", "postalOptIn": 0, "postal": "S3_Postal1", "email": "PMS_EMail1"}, "vorname": "PMS_Vorname1" }}';

print_r(json_decode($string, true));

, которая возвращает массив:

Array
(
    [userData] => Array
        (
            [geburtsdatum] => PMS_2018-01-01
            [anrede] => PMS_Herr
            [ID] => 1
            [nachname] => PMS_Nachname1
            [Test] => Array
                (
                    [tel] => PMS_Tel1
                    [postalOptIn] => 0
                    [postal] => S3_Postal1
                    [email] => PMS_EMail1
                )

            [vorname] => PMS_Vorname1
        )

)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...