我知道如何获取mysql行并将其转换为json:
$row = mysqli_fetch_assoc(mysqli_query($db, "SELECT * FROM table WHERE id=1"));
echo json_encode($row); // it's an ajax-call
但:
数据库行具有不同的类型,例如int,float,string。通过使用json_encode()进行转换,所有结果都是字符串。
有没有比这更好的方法来更正类型:
$row['floatvalue1'] = 0+$row['floatvalue1'];
$row['floatvalue2'] = 0+$row['floatvalue2'];
$row['intvalue1'] = 0+$row['intvalue1'];
我想遍历键并添加0,因为:
但我不能,因为:
在此先感谢,并请原谅我的英语不好:-)
编辑 (回答来自卡西米尔等伊波利特评论道题):
我使用ajax将此php代码称为动态获取sql值。在我的javascript代码中,我使用如下结果:
result['intvalue1'] += 100;
让说intval1的JSON-结果是50,计算出的结果是:
“ 50100”,而不是150
下面的代码只是一个概念证明。在生产中使用它之前,需要将其封装在函数/方法中,并进行一些抛光(mysqli_fetch_field()
在处理任何行之前,请在循环中调用并存储它返回的对象,而不是每行一次)。
它使用该函数mysqli_fetch_field()
获取有关结果集各列的信息,并将具有数字类型的那些列转换为数字。值MYSQLI_TYPE_*
常量中可以找到的文档页面的mysqli预定义的常量。
// Get the data
$result = mysqli_query($db, "SELECT * FROM table WHERE id=1");
$row = mysqli_fetch_assoc($result);
// Fix the types
$fixed = array();
foreach ($row as $key => $value) {
$info = mysqli_fetch_field($result);
if (in_array($info->type, array(
MYSQLI_TYPE_TINY, MYSQLI_TYPE_SHORT, MYSQLI_TYPE_INT24,
MYSQLI_TYPE_LONG, MYSQLI_TYPE_LONGLONG,
MYSQLI_TYPE_DECIMAL,
MYSQLI_TYPE_FLOAT, MYSQLI_TYPE_DOUBLE
))) {
$fixed[$key] = 0 + $value;
} else {
$fixed[$key] = $value;
}
}
// Compare the results
echo('all strings: '.json_encode($row)."\n");
echo('fixed types: '.json_encode($fixed)."\n");
5.5 结果的类型转换 类型转换(Formatter机制)是WebMagic 0.3.2增加的功能。因为抽取到的内容总是String,而我们想要的内容则可能是其他类型。Formatter可以将抽取到的内容,自动转换成一些基本类型,而无需手动使用代码进行转换。 例如: @ExtractBy("//ul[@class='pagehead-actions']/li[1]//a[@class='socia
我正在尝试实现REST API,其中一部分是将数据格式化为JSON。我能够从mysql数据库中检索数据,但是我收到的对象并不是我所期望的。这是我的代码 结果: 如何实现返回如下所示的json格式:
问题内容: 我正在寻找python库或任何将.XLSX文件转换为.CSV文件的帮助。 问题答案: 使用该模块阅读excel ,然后可以使用该模块创建自己的csv。 在命令行中安装xlrd模块: Python脚本:
问题内容: 我正在尝试使用Android中的WebView上传文件。 这是使用的代码: 的 问题 是,当外部库,我 必须 使用()触发此方法的执行,如在fileChooserParams参数传递的MIME类型:。在允许的mime类型列表中,我看不到其中的大多数。 结果,我在LogCat中发现此错误: 如果我简单地添加,一切都将按预期工作! 现在的 问题 是:在我要提交给cordova-androi
我试图上传一个文件使用WebView在Android。 现在的问题是:在我要提交给Cordova-Android贡献者的合并请求中,我如何安全地将fileChooserParams转换为正确的格式?
我看了几十个答案,但他们做的大多数是建议或类似的技巧。在我的例子中,我要转换的类型是。下面是这个POJO: 由于重构,现在是一个数组。 (显然这是一种简化,对象多了很多字段)。我只想获得一个数组,以便将其传递给。以下是我想要的: 但是根据IDE返回。生成器不工作,但无论如何这不是一个好主意,我们不想重新分配或扰乱那些未来。只需返回它们的数组。传递不会编译。 不要把这个问题标记为重复问题,除非你绝对