Ответы пользователя по тегу JSON
  • json_encode — строгая типизация

    sunsey
    @sunsey Автор вопроса
    Web dev
    Вы знаете, попробовал кучу комбинаций, думал может проблема во вложенности и не смог повторить чтоб число кодировалось в строку…
    По идее я даже понял в чем дело…

    В некоторых местах я делал так

    $sql = "select ...";
    $result_raw = query($sql);
    
    $api_response = array(
    	"id" => $result_raw["id"],
    	"filter" => $result_raw["db_filter"]
    	//...
    );
    json_encode($api_response);
    


    Но тут же у меня id выбрался из базы как строка…

    по идее, если я вручную его приведу к инту в данном случае
    $api_response = array(
    	"id" => intval($result_raw["id"]),
    	"filter" => $result_raw["db_filter"]
    	//...
    );
    


    То все будет ок, и он отдастся нормально, и тогда не будет нужды вообще исользовать JSON_NUMERIC_CHECK и соответственно
    я получу
    {
    	"id": 234, // instead of "id": "234"
    	"filter": "12" // instead of  "filter": "12" with JSON_NUMERIC_CHECK
    }
    

    то есть то, что и нужно.

    Нада опробовать на том коде, где это не работало.
    Вобщем, truekenny, спасибо за наводки =)

    >>А если отдавать массив json, а потом указывать тип для каждой переменной отдельно в javascript модуле?
    RomanovAS, не понял Вашу мысль, конвертировать на стороне клиента в тот тип, который нужен?
    Ответ написан