我需要能够获取任何JSON数据并打印键/值对。
(类似于PHP中的print_r())
这是否可以使用javascript?
答案 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#}})
)。