@lfbzrwjkc

Передать функцию в JSON на PHP?

Привет!
Сериализую массив на php:
$arr = array(
            'id' => $a,
            'name' => $b, 
            'value' => $c, 
            'fill' => "somefunction('".$d."')"
        );
echo json_encode($arr);


мне необходимо, чтоб json показывался вот так:
[{
  "id": "1",
  "name": "123",
  "value": 100,
  "fill": somefunction('data')
}, {
  "id": "2",
  "name": "123",
  "value": 50,
  "fill": somefunction('data')
}]


а не вот так:
[{
  "id": "1",
  "name": "123",
  "value": 100,
  "fill": "somefunction('data')"
}, {
  "id": "2",
  "name": "123",
  "value": 50,
  "fill": "somefunction('data')"
}]


получателю json'а нужно выполнить функцию somefunction, как уже я думаю видно из условий.

Вопрос: есть лаконичный способ или мне придётся изобретать велосипед json_encode_kak_ya_zahotel()? фреймворк на клиенте предполагает вычисление somefunction() самому, так что на бэке я его выполнять не собираюсь и не уговаривайте.
Не буду же я передавать оператору присвоения в пхп somefunction() как функцию серверную??

всем спасибо!
  • Вопрос задан
  • 182 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега PHP
чтоб json показывался вот так
Это не валидный JSON, поэтому да, сериализацию в этот нестандартный формат вам нужно писать самостоятельно.
Но тогда и десерилизацию этого нестандартного формата тоже нужно будет писать на клиенте.
Гораздо проще передавать строку и использовать, прости господи, eval.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы