Javascript中的Eclipse IDE console.log对象

时间:2013-02-25 01:22:08

标签: javascript eclipse cordova

Eclipse IDE的新用户,我认为console.log()会将字符串打印到logcat面板,这很棒。但是当我尝试console.log()一个对象(而不是字符串文字)时,我在控制台中看到的只是[对象对象]。

我现在正在使用console.log(JSON.stringify(MyObject))解决此问题,它适用于一个简单的对象,但是,如果对象太复杂,字符串在某些时候被截断,这使我的调试变得更加困难

是否有一种简洁的方法来检查控制台面板中的对象,其中有一个很好的树视图,就像您在Chrome开发人员工具中获得的那样(可扩展的树视图总是更容易处理json字符串)?

值得一提的是,我正在为Android进行PhoneGap开发。所以基本上我只处理HTML和Javascript。 System.out.println对我不起作用。

*另外,我也知道PhoneGap的Weinre。但我只是在本地IDE中寻找解决方案,因为网络调试太滞后于我的喜好。

由于

1 个答案:

答案 0 :(得分:3)

您可以编写自己的控制台“树”记录器并将其包含在源代码中。 一个简单的例子如下:

function logObject(obj)
{
    var ind = "";
    if (arguments.length > 1)
    {
        ind = arguments[1];
    }

    if (typeof obj == "undefined" || obj == null)
    {
        console.log("<null>");
        return;
    }

    if (typeof obj != "object")
    {
        console.log(obj);
        return;
    }

    for (var key in obj)
    {
        if (typeof obj[key] == "object")
        {
            console.log(ind + key + "={");
            logObject(obj[key], ind + "  ");
            console.log(ind + "}");
        }
        else
        {
            console.log(ind + key + "=" + obj[key]);
        }
    }
}

用法示例:

var a = [1, 2, 3];
var o = {a:1, b:2, c:3, d: a};
var obj = {a:1, b:o, c:3, d: a};

logObject(obj);

结果将在控制台或LogCat中显示如下:

a=1
b={
  a=1
  b=2
  c=3
  d={
    0=1
    1=2
    2=3
  }
}
c=3
d={
  0=1
  1=2
  2=3
}

干杯