Eclipse IDE的新用户,我认为console.log()
会将字符串打印到logcat面板,这很棒。但是当我尝试console.log()
一个对象(而不是字符串文字)时,我在控制台中看到的只是[对象对象]。
我现在正在使用console.log(JSON.stringify(MyObject))
解决此问题,它适用于一个简单的对象,但是,如果对象太复杂,字符串在某些时候被截断,这使我的调试变得更加困难
是否有一种简洁的方法来检查控制台面板中的对象,其中有一个很好的树视图,就像您在Chrome开发人员工具中获得的那样(可扩展的树视图总是更容易处理json字符串)?
值得一提的是,我正在为Android进行PhoneGap开发。所以基本上我只处理HTML和Javascript。 System.out.println对我不起作用。
*另外,我也知道PhoneGap的Weinre。但我只是在本地IDE中寻找解决方案,因为网络调试太滞后于我的喜好。
由于
答案 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
}
干杯