首页 > 解决方案 > 计算 JSON 有效负载的字节大小,包括它在 PHP 中的 JSON 有效负载中

问题描述

我必须使用 JSON 以如下结构发送数据:

$JSONDATA= 
    array(
        'response' => true, 
        'error' => null,
        'payload' => 
            array(
                'content' => $content,
                'size' => $size 
                )
        );

注意:变量 $content 是一个动态关联数组,所以它的大小不是恒定的。JSON 输出使用经典系统发送:

$joutput=json_encode($JSONDATA,JSON_NUMERIC_CHECK);
echo $joutput;

问题是:如何动态评估变量 $size 并将其包含在输出中?

标签: phpjsonassociative-array

解决方案


你可以用它来计算$content's size( DEMO ):

$size = strlen(json_encode($content, JSON_NUMERIC_CHECK));

这将为您提供json_encode()d 字符串的整个长度$content。如果您想以字节为单位计算大小(如果使用多字节字符),这可能更有帮助(DEMO):

$size = mb_strlen(json_encode($content, JSON_NUMERIC_CHECK), '8bit');

推荐阅读