当前位置: 首页 > 面试题库 >

PHP JSon如何读取以JSon格式接收的布尔值并在PHP上以字符串形式写入

宰父嘉胜
2023-03-14
问题内容

我从另一个站点接收到此JSON字符串,并且无法修改接收自的字符串。该字符串在$ _POST中接收,为:

[
    {
        "clientId":"17295c59-4373-655a-1141-994aec1779dc",
        "channel":"\/meta\/connect",
        "connectionType":"long-polling",
        "ext":{
            "fm.ack":false,
            "fm.sessionId":"22b0bdcf-4a35-62fc-3764-db4caeece44b"
        },
        "id":"5"
    }
]

我使用以下代码解码JSON字符串:

$receive = json_decode(file_get_contents('php://input'));

当我使用时,print_r($receive)我得到以下信息:

Array (
[0] => stdClass Object
    (
        [clientId] => 17295c59-4373-655a-1141-994aec1779dc
        [channel] => /meta/connect
        [connectionType] => long-polling
        [ext] => stdClass Object
            (
                [fm.ack] => 
                [fm.sessionId] => 22b0bdcf-4a35-62fc-3764-db4caeece44b
            )

        [id] => 5
    )
)

我可以毫无问题地访问和读取所有数组/对象:

$receive[$i]->clientId;
$receive[$i]->channel;
$connectionType = $receive[$i]->connectionType;
$receive[$i]->id;
$receive[$i]->ext->{'fm.sessionId'};

但是{fm.ack}为空

在解码的JSON字符串中,假值不在之间""

是否可以访问和读取错误值并将其转换为字符串值?

谢谢您的帮助!


问题答案:

您可以像这样使用它,其JSON格式为:当您评估false价值时将给您blank,而当您评估价值true将给您1

$str = '[{"clientId":"17295c59-4373-655a-1141-994aec1779dc","channel":"\/meta\/connect","connectionType":"long-polling","ext":{"fm.ack":false,"fm.sessionId":"22b0bdcf-4a35-62fc-3764-db4caeece44b"},"id":"5"}]';

$arr = json_decode($str,true);

if($arr[0]['ext']['fm.ack'])    // suggested by **mario**
{
    echo "true";    
}
else {
    echo "false";   
}


 类似资料:
  • 主要内容:读字符串函数 fgets,写字符串函数 fputsfgetc() 和 fputc() 函数每次只能读写一个字符,速度较慢;实际开发中往往是每次读写一个字符串或者一个数据块,这样能明显提高效率。 读字符串函数 fgets fgets() 函数用来从指定的文件中读取一个字符串,并保存到字符数组中,它的用法为: str 为字符数组,n 为要读取的字符数目,fp 为文件 指针。 返回值:读取成功时返回字符数组首地址,也即 str;读取失败时返回 NULL

  • 我在android做一个项目,从客户端我需要以json的形式发送数据,这是完美的工作,在服务器端是使用j2ee,在那里以字符串的形式接收结果,我如何得到作为json的结果,或者如何在服务器端将它转换成json存储在DB,谢谢!!

  • 主要内容:字符读取函数 fgetc,字符写入函数 fputc在C语言中,读写文件比较灵活,既可以每次读写一个字符,也可以读写一个字符串,甚至是任意字节的数据(数据块)。本节介绍以字符形式读写文件。 以字符形式读写文件时,每次可以从文件中读取一个字符,或者向文件中写入一个字符。主要使用两个函数,分别是 fgetc() 和 fputc()。 字符读取函数 fgetc fgetc 是 file get char 的缩写,意思是从指定的文件中读取一个字符。fget

  • 问题内容: 说我有这个PHP代码: 然后,我需要一个这样的功能: 打印: 任何想法如何实现这一目标?在PHP中甚至有可能吗? 问题答案: 您可以使用get_defined_vars()来查找与您要查找其名称的变量具有相同值的变量的名称。显然,这并不总是可行的,因为不同的变量通常具有相同的值,但这是我想到的唯一方法。 编辑:get_defined_vars()似乎不能正常工作,它返回’var’,因为

  • 问题内容: 为什么我返回的是JavaScript函数中的布尔变量,为什么在调用函数中将其检测为字符串,但是如果我返回布尔文字,则调用函数会将其检测为布尔值? 因此,例如: 问题答案: 您无需声明状态变量。 因此,全局一个()被覆盖。 但是,[HTML5规范]将该属性定义为DOMString: 因此,它具有一个设置器(公开的或内部的),用于存储字符串化的值。 要解决此问题,只需使用语句声明您的局部变

  • 我知道这个问题很简单。但我想知道布尔运算符的字符串格式。例如,下面显示了整数、字符串和浮点数的字符串格式。布尔运算符真/假可能是什么?