Yii2:如何转换 JSON PHP 数组的数据类型值?

Rob*_*ini 1 php json type-conversion yii2

我正在使用 Yii2 框架来创建这个 JSON 数组:

"data": [
  {
    "id": 201,
    "name": "John",
    "age": "30"
  }
]
Run Code Online (Sandbox Code Playgroud)

年龄是一个字符串,我需要它是一个整数,即没有引号。像这样:

"data": [
    {
      "id": 201,
      "name": "John",
      "age": 30
    }
]
Run Code Online (Sandbox Code Playgroud)

这是创建 JSON 数组的 PHP 函数:

$persons['data'] = Persons::find()
    ->select([
        'id',
        'name',
        'age'
    ])
    ->asArray()
    ->all();
Run Code Online (Sandbox Code Playgroud)

Muh*_*lam 6

自 php 5.3 起,您可以使用JSON_NUMERIC_CHECKflag 作为json_encode()\yii\helpers\Json::encode()用于自动转换数字的第二个参数,请参阅here

你可以像这样使用标志

$data = Persons::find()
    ->select(
      [
         'id',
         'name',
         'age'
      ]
    )
    ->asArray()
    ->all();

$json = \yii\helpers\Json::encode($data,JSON_NUMERIC_CHECK);
Run Code Online (Sandbox Code Playgroud)