从文本创建对象

时间:2013-11-26 21:31:55

标签: javascript php jquery html

我有javascript文字:

var textObject = '

        {
            news: [
                                                      { 
                "title":"aaa",
                "desc":"bbb"
                },                                      { 
                "title":"ccc",
                "desc":"ddd"
                }          ]
        }; 

'

但这是我变量中的文本。如果我在代码html中有这个工作正常,但我从PHP脚本获取此数据与ajax。

那么如何将此文本转换/解析为对象?如果我有JSON,那么我可以使用JSON.parse(textObject);但这不是json。

2 个答案:

答案 0 :(得分:1)

Eval因为很多原因而不受欢迎,但是如果使用得当它也有好处,它可以用于很多模板引擎和其他一些东西,但它会将字符串转换为对象。

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()将是必要的。