如何将json对象转换为警告框中的字符串?
我想调试我的响应(json)并将其显示为警告框中的字符串。 有什么方便的事可做吗?
var myjson = { Name : "Marko" }; alert(myjson.toString()); // ? [Object] !!!
最方便的方法是使用浏览器的控制台。
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/
您可以在成功回复中使用以下内容:
alert(JSON.stringify(data));
您可以使用JSON.stringify。 但是,我不知道它是否适用于所有常见的浏览器。
警报(JSON.stringify(JSON对象));
您可以使用Firebug或Google Chrome内置控制台分析请求的响应文本。
如果您提供JSON结构,您将得到明确的答案。
例如,如果您具有低于JSON结构。
var json={ “id”:23,”name”:”marko”}; for(key in json){ alert(key+'->'+json[key]); }
对于上面的单个节点json来说,这并不简单。 如果JSON结构更深,你需要迭代直到你获得价值:)
要么。 最简单的方法是console.log(json); 并在firebug中看到,你将获得json块内的内容。
试试这个
var myJSONText = JSON.stringify(myObject, replacer);
JSON字符串化方向相反,将JavaScript数据结构转换为JSON文本。 JSON不支持循环数据结构,因此请注意不要为JSON字符串提供循环结构。 http://www.json.org/js.html
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 ""; }