javascript json - 从 php 解码 ajax json 数组时出现问题

标签 javascript json

我使用 php 的 json_encode() 将数组转换为 json,然后回显它并从 javascript ajax 请求中读取。

问题是回显的文本具有 javascript json parse() 函数无法转换为的 unicode 字符。

示例数组值为“2\u00000\u00001\u00000\u0000-\u00001\u00000\u0000-\u00000\u00001”,即“2010-10-01”。

Json.parse() 只给我“2”。

有人帮我解决这个问题吗?

示例:

            var resArray = JSON.parse(this.responseText);
            for(var x=0; x < resArray.length; x++) {
                var twt = resArray[x];
                alert(twt.date);
                break;
            }

最佳答案

字符串中有 NUL 字符(字符代码零)。它实际上是"2_0_1_0_-_1_0_-_0_1" ,其中_代表NUL字符。

unicode 字符转义实际上是 JSON 标准的一部分,因此解析器应该正确处理它。但是,结果仍然是一个包含 NUL 字符的字符串,因此当您尝试在 Javascript 中使用该字符串时,其行为将取决于浏览器对 NUL 字符的处理方式。

您可以在一些不同的浏览器中尝试此操作:

alert('as\u0000df');

Internet Explorer 将仅显示 as

Firefox 将显示 asdf但 NUL 字符不显示。

最好的解决方案是在将数据转换为 JSON 之前删除 NUL 字符。

关于javascript json - 从 php 解码 ajax json 数组时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4007987/

相关文章:

javascript - 使用 JVector 随机着色美国 map

php - 从 PHP 插入时在 MongoDB 上执行 JS

asp.net - web api方法返回json格式的数据?

json - 如何在 CoffeeScript 中总结 JSON 对象的属性?

javascript - 如何使用 PHP 将文本添加到 JSON

JavaScript fetch() - 将 ReadableStreams 数组映射到数组

javascript - 尝试获取数组的最后一个对象并将其移动到前面以在 Vanilla JS/canvas 蛇游戏中移动蛇

javascript - 在 JavaScript 中合并两个对象 (NodeList) 数组

javascript - 将 Angular 4 应用程序分为面向用户和管理部分的方法

java - 提供 JSON 和 XML 格式的 GET 方法