首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >检测返回值的数据类型

问检测返回值的数据类型
EN

Stack Overflow用户
提问于 2020-09-22 08:49:09
回答 2查看 229关注 0票数 1

我正在开发一个返回PHP JSON API多维数组的json_encoded。由于PHP是一种弱类型语言-我在客户端返回的数据类型有一些问题,例如整数作为字符串返回。

响应示例

在json编码之前

代码语言:javascript
复制
array() {
  ["users"]=>
  array() {
    ["id"]=>
    string(3) "983"
    ["email"]=>
    string(28) "xxx.xxx@xxx.xxx"
    ["username"]=>
    string(8) "xxx"
    ["verified"]=>
    string(1) "2"
    ["tutorial_completed"]=>
    string(1) "1"
  }
  ["companies"]=>
  array() {
    ["id"]=>
    string(3) "170"
    ["name"]=>
    string(0) "xxx"
    ["trusted"]=>
    string(1) "1"
  }
}

在json编码后的

代码语言:javascript
复制
data: {
   users: {
     id: "983",
     email: "xxx@xxx.xxx",
     username: "xxx",
     verified: "2",
     tutorial_completed: "1",
   },
   companies: {
     id: "170",
     name: "xxx",    
     trusted: "1",
   }
}

我正在从一个MySQL table获取数据。这些值基本上都是按原样计算的。

One解决方案,它的工作是检查每个键,然后通过intval()或floatval()转换数值-但这将意味着一个巨大的努力,更大的数组和解决方案缺乏灵活性。

它们是否是一种自动检测数据类型是否也可以是数字值的平滑方式,如果可以,则转换它吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-22 09:28:52

问题:当您从MySQL数据库中获取数据时,结果中的字段是字符串类型或NULL,不管数据库中字段的类型是什么。这与MYSQL驱动程序有关。

解决方案:您需要自己将数值转换为数组中所需的类型。或者,在转换为json时,只需使用:

代码语言:javascript
复制
$encoded = json_encode($data, JSON_NUMERIC_CHECK);

数字字段将自动为您转换。

票数 1
EN

Stack Overflow用户

发布于 2020-09-22 09:02:22

您可以在从is_int()获取数据的循环中使用mysql函数,并在创建数组时使用返回为true的intval(),希望这会有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64006182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档