我正在使用 sun.misc.BASE64Encoder 对加密值进行编码,然后将其添加到 JSON 字段并随后发送到客户端。我在客户端使用 Javascript 的 eval() 函数从 JSON 代码创建一个对象。当 eval() 运行时,它会给出错误:
unterminated string literal
JSON 代码中还有其他字段,但我已将错误范围专门缩小到 base64 编码字段。这是有问题的 javascript 代码行:
var result = eval( '(' + xhr.responseText + ')' );
这是来自 Servlet 的 JSON 对象:
{
'resource':'resource?Signature=j79r/2Hly+HqhS/6fdd+prfsR+kUNijUvDN0QJ14ZR43gzYScOMDypt/crks/CEphTUXVptJvSol
1ZOOvScCUhNOCb7dZk/3MKnI5tOewSACXK32/OJNd8hYpZtSTn+WhA6+f9BUIUZWA83U8Cud/Tb8V
R1yQWbDGG/mM/NiUSiY=',
'url':'http://somesite.com/pr'
}
我不确定为什么 eval 快死了,但似乎“资源”JSON 字段的值包含它不关心的内容。
提前致谢。 蒂姆
最佳答案
我认为这可能是因为您的 JSON 中似乎有换行符。如果删除它们,是否有效?
关于带有base64编码字段的javascript eval json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3129264/