我想调试我的响应(json)并让它在警告框中显示为字符串。有什么方便的事吗?
var myjson = { Name : "Marko" };
alert(myjson.toString()); // ? [Object] !!!
答案 0 :(得分:17)
您可以在成功回复中使用以下内容:
alert(JSON.stringify(data));
答案 1 :(得分:10)
最方便的方法是使用浏览器的控制台。
console.log(json);
在大多数浏览器中,您可以非常清楚地了解json内容。
另外,你可以使用for循环创建一个字符串:
var output = '';
for (var entry in json) {
output += 'key: ' + entry + ' | value: ' + json[entry] + '\n';
}
alert(output);
但这不是递归的。这是一个工作演示:http://jsfiddle.net/n695V/
答案 2 :(得分:4)
您可以使用JSON.stringify。但是,我不知道它是否适用于所有常见的浏览器。
警报(JSON.stringify(JSON对象));
答案 3 :(得分:2)
您可以使用Firebug或Google Chrome内置控制台分析请求的响应文本。
答案 4 :(得分:1)
如果您提供JSON结构,您将得到明确的答案。
例如,如果您具有低于JSON结构。
var json={ “id”:23,”name”:”marko”};
for(key in json){
alert(key+'->'+json[key]);
}
上述单节点json并不简单。如果JSON结构更深,则需要迭代直到获得值:)
或者。最简单的方法是console.log(json);并且在firebug中看到,你将获得json块内部的内容。
答案 5 :(得分:0)
试试这个
var myJSONText = JSON.stringify(myObject, replacer);
JSON字符串化方向相反,将JavaScript数据结构转换为JSON文本。 JSON不支持循环数据结构,因此请注意不要给JSON字符串化器提供循环结构。 http://www.json.org/js.html
答案 6 :(得分:0)
function JSON2string (jsonobject,prefix) {
if (!prefix) prefix="";
if (typeof(jsonobject)=="string") return jsonobject;
if (typeof(jsonobject)=="number") return jsonobject.toString();
if (typeof(jsonobject)=="object") {
var s="Object:\n"
var newprefix=" "+prefix;
for (var i in jsonobject) s+=prefix+i+"="+JSON2String(jsonobject[i],newprefix)+"\n";
return s;
}
return "<unhandled>";
}