如何将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 ""; }