我有javascript文字:
var textObject = '
{
news: [
{
"title":"aaa",
"desc":"bbb"
}, {
"title":"ccc",
"desc":"ddd"
} ]
};
'
但这是我变量中的文本。如果我在代码html中有这个工作正常,但我从PHP脚本获取此数据与ajax。
那么如何将此文本转换/解析为对象?如果我有JSON,那么我可以使用JSON.parse(textObject);但这不是json。
答案 0 :(得分:1)
var someString = '{obj: "with content"}';
eval( someString );
以下是您的字符串的工作示例:http://jsfiddle.net/kkemple/CwzRh/
答案 1 :(得分:1)
使用eval
会导致严重的性能下降。
由于您无法执行JSON,因此请使用Function
构造函数,以便在全局范围内进行评估,并且浏览器仍然可以优化本地代码。
var result = new Function("return " + textObject.trim())();
您需要填充.trim()
来支持IE8。如果字符串与您在开头显示的换行符一样,那么.trim()
将是必要的。