PHP получает объект JSON из залпа студии Android Получить запрос

Я использую студию Android для отправки запроса GET с использованием залпа. Я включаю параметр HashMAP (называемый whereArray). Мой запрос URL из запроса залпа выглядит так...

https://xxxxxxxx.co.za/api/select_from_fact_sighting.php?whereArray={country_name=Botswana, region=Southern Africa}

Мне нужна помощь в работе с этим параметром на стороне сервера, где я хочу пройтись по нему и вставить его в предложение sql where. Но я борюсь за декодирование массива в моем php-скрипте (я предполагаю, что его следует преобразовать в объект Json?). Я включил фрагмент из функции php, где я пытаюсь декодировать массив.

public function select_from_fact_sighting($whereArray) {

    $jsonArray = json_decode($whereArray);
    $elementCount  = count($jsonArray); ```

Значение в $whereArray равно {country_name=Botswana, region=Southern Africa} Но значение в $jsonArray пусто, а $elementCount равно 0, что означает, что в декодированном массиве json ничего нет. Будем очень благодарны за любую помощь в декодировании параметра в PHP и переборе результирующего массива.

Спасибо


person Jon    schedule 04.01.2020    source источник
comment
разве залп не устарел?   -  person inetphantom    schedule 04.01.2020


Ответы (1)


{country_name=Botswana, region=Southern Africa} не является допустимым JSON, он должен быть {"country_name": "Botswana", "region": "Southern Africa"}

Кроме того, json_decode() возвращает объект по умолчанию, а не массив, если вам нужен массив, вам нужно передать true в качестве второго параметра: json_decode($whereArray, true)

См. документацию: PHP json_decode()

person Joffrey Schmitz    schedule 04.01.2020