За последние 24 часа нас посетили 20903 программиста и 1137 роботов. Сейчас ищут 356 программистов ...

Помогите распарсить входящий $_POST'ом JSON

Тема в разделе "PHP для новичков", создана пользователем lungdesire29, 23 апр 2017.

  1. lungdesire29

    lungdesire29 Новичок

    С нами с:
    23 апр 2017
    Сообщения:
    11
    Симпатии:
    0
    Доброго времени суток друзья!
    В $_POST['value'] приходит строка вида:
    Код (Text):
    1. {"_id":73022112,"mid":10229743,"val":"92671","per1":"google","per2":"19283","title":"new","name":"","type":1,"Durability":0,"dtime":1492950714,"on":"0"}
    Как можно выбрать конкретные значения параметров, вроде:
    val, per1, per2, title, type, Durability, dtime и on ?
    Спасибо за потраченное время :)
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    lungdesire29 нравится это.
  3. lungdesire29

    lungdesire29 Новичок

    С нами с:
    23 апр 2017
    Сообщения:
    11
    Симпатии:
    0
    Пытаюсь записать значение параметра per1 в файл:
    PHP:
    1. $json_string = $_POST['value'];
    2.                 $obj=json_decode($json_string, TRUE);
    3.                 $perem = $obj->per1;
    4.                 file_put_contents('file.txt', $perem, FILE_APPEND);
    Но в файл просто ничего не пишется. Подскажите, где я мог ошибиться?
     
  4. lungdesire29

    lungdesire29 Новичок

    С нами с:
    23 апр 2017
    Сообщения:
    11
    Симпатии:
    0
    Только заметил, что переменная $json_string пустая. Значит я неправильно передаю значения массива value.
    Кстати, конструкция:

    $json_string=$_POST['value[]'];

    тоже не дала результата!
     
  5. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Потому что не читаешь что написано в мануале
     
    lungdesire29 нравится это.
  6. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.230
    Симпатии:
    1.715
    Адрес:
    Молдова, г.Кишинёв
    lungdesire29 нравится это.
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.155
    Симпатии:
    1.769
    Адрес:
    :сердА
    Уверен, что квадатные скобки нужны на конце? Потому как name-ы с квадратными скобками сами интерпретируются как массив. Следовательно, такого ключа в POST-е быть просто не может.
     
    lungdesire29 нравится это.
  8. lungdesire29

    lungdesire29 Новичок

    С нами с:
    23 апр 2017
    Сообщения:
    11
    Симпатии:
    0
    Если подставить в ручную содержимое $_POST['value'] в переменную $json_string, то всё работает корректно.
    PHP:
    1. $json_string = '{"_id":73022112,"mid":10229743,"val":"92671","per1":"google","per2":"19283","title":"new","name":"","type":1,"Durability":0,"dtime":1492950714,"on":"0"}';
    2.                 $obj=json_decode($json_string, TRUE);
    3.                 $perem = $obj['per1'];
    4.                 echo $perem;
    При попытке же использовать:
    PHP:
    1. $json_string=$_POST['value']
    $json_string - пустая. Вероятно я неправильно работаю с $_POST['value']!
     
  9. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    http://phpfaq.ru/debug
     
    lungdesire29 нравится это.