Javascript:将Console.debug()输出写入浏览器?

时间:2009-11-19 21:46:24

标签: javascript json loops

我需要能够获取任何JSON数据并打印键/值对。

(类似于PHP中的print_r())

这是否可以使用javascript?

6 个答案:

答案 0 :(得分:13)

我通常只是快速创建一个日志功能,允许您更改日志记录方法。写入启用/禁用或注释以选择选项。

function log(msg){
  if (window.console && console.log) {
    console.log(msg); //for firebug
  }
  document.write(msg); //write to screen
  $("#logBox").append(msg); //log to container
}

更新:有关Firebug的Console API

的信息

更新:添加了对非firebug浏览器的检查。

答案 1 :(得分:5)

是的,您可以通过警报处理大量信息,您也可以使用它进行调试。

这也是print_r equivalent for javascript

function print_r(theObj){
  if(theObj.constructor == Array ||
     theObj.constructor == Object){
    document.write("<ul>")
    for(var p in theObj){
      if(theObj[p].constructor == Array||
         theObj[p].constructor == Object){
document.write("<li>["+p+"] => "+typeof(theObj)+"</li>");
        document.write("<ul>")
        print_r(theObj[p]);
        document.write("</ul>")
      } else {
document.write("<li>["+p+"] => "+theObj[p]+"</li>");
      }
    }
    document.write("</ul>")
  }
}
祝你的项目好运!

答案 2 :(得分:2)

我建议您使用JSON2之类的JSON解析库,以便能够“对字符串化”您的对象,然后您可以简单地:

var myString = JSON.stringify(myObject);

myString现在将包含myObject的字符串表示形式。

但如果是出于调试目的,我建议您使用Firebug来获取JavaScript调试器,在Console API中可以获得许多有用的功能。

答案 3 :(得分:1)

你能简单地使用以下内容:

 document.write('<h2>Your Text and or HTML here.</h2>'); 

答案 4 :(得分:0)

FireBug是一个很棒的工具!必不可少!我发现它不需要将调试数据写入我的页面,我可以整天查看JSON。

答案 5 :(得分:0)

  

我需要能够接受任何JSON   数据并打印键/值对。

然后打印JSON数据。 JSON是一种符号,而不是一个对象。如果您有JSON数据,那么您已经拥有了所需的一切。如果您希望它更加花哨,您可能希望在每"\s*,之后添加一个换行符。

如果你想解构一个对象,除非你使用JavaScript,否则它是不可能的,因为ECMAScript不能在单个对象文字中创建循环引用。如果这只是JavaScript,那么您可以使用uneval(object),它将使用尖锐的变量。 (例如({x:#1={y:#1#}}))。