[英]JSON.parse: bad escaped character with php
我面临JSON解析问题。 我在php中有这个:
json_encode(getTeams(),JSON_HEX_APOS);
它返回大量数据。
样本数据:为进一步澄清,我可以说:
my_encoded_data =
{
"13": "Germany-1",
"14": "Russia-1",
"15": "Switzerland-1",
"16": "Canada-1",
"17": "USA-1",
"18": "USA-2",
"19": "Germany-2",
"20": "Italy-1",
"21": "Switzerland-2",
"22": "Austria-1",
"23": "Italy-2",
"24": "Netherlands-1",
"25": "Poland-1",
"26": "Latvia-1",
"27": "Russia-2",
"28": "Czech Republic-1",
"29": "Great Britain-1",
"30": "France-1",
"31": "Canada-2",
"32": "Slovakia-1",
"43": "A. Florschütz/T. Wustlich",
"44": "P. Leitner/A. Resch",
"46": "G. Albrecht/E. Pothier",
"48": "C. Moffat/M. Moffat",
"50": "V. Boizov/D. Khamkin",
"51": "M. Kuzmitch/J. Veselov",
"53": "T. Schiegl/M. Schiegl",
"56": "P. Griffal/D. Joye",
"59": "A. Linger/W. Linger",
"62": "G. Plankensteiner/O. Haselrieder",
"65": "A. Sics/J. Sics",
"68": "C. Oberstolz/P. Gruber"
}
我已经通过将数据分成小部分进行测试以在jsonlint中进行验证。 它显示了有效的json。 那么我已经在javascript中将其分配了:
window.objteamsFromServer = my_encoded_data;
然后我想像这样在json中解析它:
arrSearch = window.objteamsFromServer;
它给了我这个错误:
JSON.parse: bad escaped character
我该如何解决?
让我知道是否需要任何信息。
谢谢,
Awlad
从您的问题中很难确切地知道my_encoded_data
是什么,但是听起来好像您正在将json_encode
的结果输出到JavaScript源代码中,例如(从浏览器的角度来看):
window.objteamsFromServer = {
"13": "Germany-1",
"14": "Russia-1",
"15": "Switzerland-1",
"16": "Canada-1",
"17": "USA-1",
// ...and so on
};
然后还尝试使用JSON.parse
对其进行解析。
你不会那样做。 JavaScript引擎将已经解析了该对象初始化程序(它不是JSON,而是JavaScript源代码),因此您只需直接使用该值即可:
console.log(window.objteamsFromServer[13]); // "Germany-1"
我猜您可能由于以下行而收到此错误:
"43": "A. Florschütz/T. Wustlich",
注意上面名称中的“ü”。
一种方法是在服务器端对数据进行编码,然后在客户端进行解码。 使用JavaScript的decodeURIComponent函数在客户端进行解码。
有关数据的服务器端编码,请参阅php文档。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.