根据这篇文章中的辩论: Javascript 中的转换
是的,数组作为顶级 JSON-text 是合法的。
定义 JSON 有四个标准文档: RFC 4627、 RFC 7159(废弃 RFC4627)、 ECMA-404和 RFC 8259(废弃 RFC7159,并调用 ECMA-404标准)。它们在允许哪些顶级元素方面有所不同,但都允许将对象或数组作为顶级元素。
是的,你可以做到。输入 [{}]
[{}]
这来自 ECMAScript 规范。
JSONText : JSONValue JSONValue : JSONNullLiteral JSONBooleanLiteral JSONObject JSONArray JSONString JSONNumber
Yes ,但是在某些情况下,由于 JSON 劫机的原因,您应该考虑使根成为一个对象。这是一个基于重写 JavaScript 中的数组构造函数的信息披露漏洞。
在其他评论中可以看到一些混淆。根据 JSON RFC,“ application/json”媒体类型对于 JSON-text 只允许顶层的对象或数组。但是,对于解析器,任何 JSON 值都是可以接受的,如 ECMAScript 规范所示。
更新: RFC 4627已经过时了。新的 RFC 7159允许在顶层使用简单的值。(谢谢, Matthias Dieter Wallnöfer)
这对我有用:
["apple","pear","banana"]
我将上面的内容以字符串的形式存储在 MySQL DB 中,然后在我的 PHP 中完全可以做到这一点:
<?php $checkArr = json_decode($pageData[0]['pg_json']); echo $checkArr[0]; ?>
结果是这样的:
苹果