相关疑难解决方法(0)

检查字符串是否是PHP中的JSON的最快方法?

我需要一种非常非常快速的检查字符串是否为JSON的方法.我觉得这不是最好的方法:

function isJson($string) {
    return ((is_string($string) &&
            (is_object(json_decode($string)) ||
            is_array(json_decode($string))))) ? true : false;
}
Run Code Online (Sandbox Code Playgroud)

任何表演爱好者都想改进这种方法吗?

php error-handling json jsonresult json-deserialization

355
推荐指数
19
解决办法
31万
查看次数

如何确定字符串是否是有效的JSON?

有谁知道PHP的强大(和防弹)is_JSON函数片段?我(显然)有一种情况,我需要知道字符串是否是JSON.

嗯,也许通过JSONLint请求/响应运行它,但这似乎有点矫枉过正.

php validation json code-snippets jsonlint

42
推荐指数
3
解决办法
7万
查看次数

ECMA-404的出版是否影响了JSON文本的有效性,例如"2"或""你好"?

以下是有效的JSON文本,还是它们的顶级值必须是数组或对象?

4.0
Run Code Online (Sandbox Code Playgroud)
"Hello World"
Run Code Online (Sandbox Code Playgroud)
true
Run Code Online (Sandbox Code Playgroud)

过去的相关问题,例如什么是最小有效JSON?,这个简单的字符串被认为是有效的JSON吗?已经得出结论,他们不是.这是基于RFC-4627中 JSON格式的描述,其中指出:

2. JSON语法

JSON文本是一系列标记.标记集包括六个结构字符,字符串,数字和三个文字名称.

JSON文本是序列化对象或数组.

 JSON-text = object / array
Run Code Online (Sandbox Code Playgroud)

这些是六个结构特征:

[...]

但是,RFC-4627状态声明它"未指定任何类型的Internet标准".相反,JSON的官方标准是最近发布的ECMA-404.与RFC-4627不同,ECMA-404对有效JSON文本的描述不包括任何对象或数组的要求.例如,与上面引用最相似的部分缺少该要求:

4 JSON文本

JSON文本是由符合JSON值语法的Unicode代码点形成的标记序列.该组令牌包括六个结构标记,字符串,数字和三个文字名称标记.

六个结构代币:

[...]

鉴于这个新规范,编码的非数组非对象顶级值是否被认为是有效的JSON文本?

21
推荐指数
1
解决办法
5312
查看次数