我有一种不寻常的情况,根据active的值为0或1导致无效的JSON被解释为客户端。如何在数组中将有效值从int更改为字符串,以便json_encode有效?还是完全其他?看着两个json输出看起来都一样...
Active和ID都是整数。其他所有东西都是字符串。
有趣的是,如果active为1而不是0,则JSON有效并正确显示。
JSON:
[
{
"id": 254,
"name": "Test",
"company": "Test",
"email": "Test",
"phone": "Test",
"comments": "Test",
"ticket": "Test",
"assigned": "",
"active": 0,
"date_created": "2018-12-02 00:56:49"
}
]
代码:
$stmt = $conn->prepare("SELECT id, name, company, email, phone, comments, ticket, assigned, active, date_created FROM tickets_info");
$stmt->execute();
$result = $stmt->get_result();
$result_array = array();
while ($row = $result->fetch_assoc()) {
array_push($result_array, $row);
}
header("Content-Type: application/json");
echo json_encode($result_array);
答案 0 :(得分:2)
作为您需要将int强制转换为字符串的问题
铸造它很容易
DatePickerAndroid
铸造非常容易更改数据类型
我们可以在PHP中强制转换以下数据类型变量
while ($row = $result->fetch_assoc()) {
$row['id'] = (string) $row['id'] ;
$row['active'] = (string) $row['active'] ;
array_push($result_array, $row) ;
}
-投射到(int), (integer)
integer
-投射到(bool), (boolean)
boolean
-投射到(float), (double), (real)
float
-投射到(string)
string
-投射到(array)
array
-投射到(object)
object
-强制转换为(unset)
(PHP 5)