首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >是否将json_encode中的null转换为空字符串?

是否将json_encode中的null转换为空字符串?
EN

Stack Overflow用户
提问于 2018-06-01 09:07:45
回答 2查看 2.9K关注 0票数 1

我在尝试使用json_encode的结果将空值转换为空字符串时遇到了问题

代码语言:javascript
复制
    if ($uresult->num_rows >0) {


 while($urow = $uresult->fetch_assoc()) {


 $rresult = mysqli_query($con,"SELECT * FROM allid WHERE postid='$oldid' AND spaceid='$newid'");
 $lrow = mysqli_fetch_assoc($rresult);
 $tem = $lrow['postid'];

 $ujson = json_encode($tem);
 echo $ujson;
 }

} else {
}

以下是$ujson的结果

代码语言:javascript
复制
"10"nullnullnullnull"25"

我查了一下答案,得到的答案是:

代码语言:javascript
复制
array_walk($tem,function(&$item){$item=strval($item);});

这样做会导致我得到这个错误:

代码语言:javascript
复制
Warning: array_walk() expects parameter 1 to be array, string given

这是将null转换为空字符串的正确方法吗?如果是,我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-01 09:20:46

就像我在评论中说的那样,它说$tem是一个stringarray_walk需要一个数组才能正常工作。

无论如何,如果你想让null值变成空字符串'',只需用array_map strval你得到的数组,这样它就会对数组中的每个元素应用strval。最后,对其进行编码。

大意是这样的:

代码语言:javascript
复制
$lrow = array_map('strval', $lrow);

更深入地看一下,您应该首先将所有项放入容器中,然后最后对它们进行编码。不要对每个批次都进行编码。关于$tem,你就不需要array_walk了,只需要一个三元运算符:

代码语言:javascript
复制
$post_ids = array();
if ($uresult->num_rows > 0) {
    while ($urow = $uresult->fetch_assoc()) {
        $rresult = mysqli_query($con,"SELECT * FROM allid WHERE postid='$oldid' AND spaceid='$newid'");
        $lrow = mysqli_fetch_assoc($rresult);
        $tem = !is_null($lrow['postid']) ? $lrow['postid'] : '';
        $post_ids[] = $tem;
    }
}

echo json_encode($post_ids);

旁注:尽可能避免使用while循环,并在其内部使用另一个查询(想象一下有一千行;它也会查询一千次)。请改用JOIN语句。

票数 3
EN

Stack Overflow用户

发布于 2020-07-29 02:34:54

试着这样做-

代码语言:javascript
复制
//Array
$array = ["id" => 1, "name" => "Rohit Suthar", "city" => null, "mobile" => null];

//Convert null value to empty string 
array_walk_recursive($array,function(&$item){$item=strval($item);});

echo json_encode($array);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50634768

复制
相关文章

相似问题

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