首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将php的空值转换为JSON字符串中的空值?

如何将php的空值转换为JSON字符串中的空值?
EN

Stack Overflow用户
提问于 2013-08-19 18:31:26
回答 3查看 11.4K关注 0票数 1

我有一个系统,它以JSON字符串的形式发送和接收所有数据,因此必须将需要发送给它的所有数据格式化为JSON字符串。

我使用PHP POST调用从表单接收值,然后使用这些值创建JSON格式的字符串。问题在于null值以及true和false值。当这些值包含在来自POST值的字符串中时,它只是将其保留为空,但是JSON将null值格式化为文本NULL。

如下例所示:

代码语言:javascript
运行
复制
<?php

$null_value = null;
$json_string = '{"uid":0123465,"name":"John Smith","nullValue":'.$null_value.'}';
echo $json_string;

//output
{"uid":0123465,"name":"John Smith","nullValue":} 

?>

但是,我需要的正确输出是:

代码语言:javascript
运行
复制
$json_string = '{"uid":0123465,"name":"John Smith","nullValue":null}';
echo $json_string;

//output
{"uid":0123465,"name":"John Smith","nullValue":null} 

?>

我的问题是,如何才能让PHP空值正确地显示为JSON空值,而不是仅仅将其留空?有没有转换它们的方法?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-19 18:36:52

不要手动创建JSON字符串。PHP有一个很好的函数http://php.net/manual/en/function.json-encode.php

票数 2
EN

Stack Overflow用户

发布于 2013-08-19 18:37:36

不要手动拼凑

代码语言:javascript
运行
复制
$data = array('uid' => '0123465', 'name' => 'John Smith', 'nullValue' => null);
$json = json_encode($data);
票数 0
EN

Stack Overflow用户

发布于 2013-08-19 18:38:56

你可以做一些检查:

代码语言:javascript
运行
复制
$null_value = null;
if(strlen($null_value) < 1)
    $null_value = 'null';//quote 'null' so php deal with this var as a string NOT as null value
$json_string = '{"uid":0123465,"name":"John Smith","nullValue":'.$null_value.'}';
echo $json_string;

或者您可以在开头引用值null

代码语言:javascript
运行
复制
$null_value = 'null';
$json_string = '{"uid":0123465,"name":"John Smith","nullValue":'.$null_value.'}';
echo $json_string;

但更好的方法是收集数组中的值,然后对其进行编码:

代码语言:javascript
运行
复制
$null_value = null;
$json_string = array("uid"=>0123465,"name"=>"John Smith","nullValue"=>$null_value);
echo json_encode($json_string,JSON_FORCE_OBJECT);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18311638

复制
相关文章

相似问题

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