【PHP】判断字符串是否是json类型,并判断是否是有效数组

要在 PHP 中判断给定的字符串是否是 JSON,可以使用 json_decode() 函数和检查返回值的类型。以下是一个示例,展示了如何判断给定的字符串是否是 JSON,以及如何判断它是数组还是字符串:

php 复制代码
<?php

function isJson($string)
{
    json_decode($string);
    return (json_last_error() == JSON_ERROR_NONE);
}

$jsonString1 = '{"name": "John", "age": 30, "city": "New York"}';
$jsonString2 = '["apple", "orange", "banana"]';
$notJsonString1 = 'This is not a JSON string';
$notJsonString2 = '"This is a JSON string, but it is a string, not an object or array"';

// 测试 JSON 字符串
var_dump(isJson($jsonString1)); // 输出:bool(true)
var_dump(isJson($jsonString2)); // 输出:bool(true)

// 测试非 JSON 字符串
var_dump(isJson($notJsonString1)); // 输出:bool(false)
var_dump(isJson($notJsonString2)); // 输出:bool(false)

// 判断 JSON 字符串是数组还是字符串
$decoded1 = json_decode($jsonString1, true);
$decoded2 = json_decode($jsonString2, true);

if (is_array($decoded1)) {
    echo "The first JSON string is an array.\n";
} else {
    echo "The first JSON string not is an array.\n";
}

if (is_array($decoded2)) {
   echo "The second JSON string is an array.\n";
} else {
    echo "The second JSON string not is an array.\n";
}
?>

在这个示例中,我们定义了一个名为 isJson() 的函数,用于检查给定的字符串是否是 JSON。然后,我们使用 json_decode() 函数解码 JSON 字符串,并使用 is_array() 函数检查解码后的值的类型。如果解码后的值是数组,则 JSON 字符串是数组。

相关推荐
tryqaaa_3 小时前
md5和sha1常见绕过【详细附新生赛题目】
web安全·php·web
李昊哲小课4 小时前
Python json模块完整教程
开发语言·python·json
江湖有缘5 小时前
本地化JSON 处理新方案:基于 Docker的JSON Hero部署全记录
java·docker·json
ShoreKiten5 小时前
第三届SHCTF--EZphp
web安全·php·php反序列化
进击的雷神9 小时前
前端路由动态渲染、JSON内嵌HTML清洗、展位信息数组化、分页参数固定化——尼日利亚展会爬虫四大技术难关攻克纪实
前端·爬虫·python·json
2401_858936889 小时前
深入理解 TCP 并发服务器:从 IO 模型到多路复用实现
服务器·tcp/ip·php
战神/calmness10 小时前
应急响应-勒索病毒 13
网络·web安全·php·勒索病毒
bug攻城狮11 小时前
Docker高级篇04:Docker网络
网络·docker·php
147API12 小时前
Claude JSON 稳定输出:Schema 校验与修复回路(Kotlin)
开发语言·kotlin·json·claude
工业甲酰苯胺12 小时前
PHP闭包中static关键字的核心作用与底层原理解析
android·开发语言·php