我想调试我的响应(json)并将它显示为一个警告框中的字符串。有没有方便的事情要做?如何将json对象转换为警报框中的字符串?
var myjson = { Name : "Marko" };
alert(myjson.toString()); // ? [Object] !!!
我想调试我的响应(json)并将它显示为一个警告框中的字符串。有没有方便的事情要做?如何将json对象转换为警报框中的字符串?
var myjson = { Name : "Marko" };
alert(myjson.toString()); // ? [Object] !!!
最方便的方式,将使用浏览器的控制台。
console.log(json);
在大多数浏览器中,您可以非常清楚地看到json的内容。
Alternativly你可以做一个串一个for循环:
var output = '';
for (var entry in json) {
output += 'key: ' + entry + ' | value: ' + json[entry] + '\n';
}
alert(output);
但这不是递归。这里是一个工作示范:http://jsfiddle.net/n695V/
如果您有两个对象,即第一个是一个对象,后面是一个对象数组,这个解决方案不能很好地工作。而且我正在使用只有IE9的远程Windows Server。 – marko 2012-01-17 15:42:18
您可以使用Firebug或Google Chrome内置控制台分析请求的响应文本。
您可以使用JSON.stringify。但是,我不知道它是否适用于所有常见的浏览器。
alert(JSON.stringify(json-object));
根据浏览器的不同,您可能需要在您的页面中包含此信息以使JSON.stringify工作https://github.com/douglascrockford/JSON-js/blob/master/json2.js – MrKiane 2012-01-17 13:14:56
尝试此
var myJSONText = JSON.stringify(myObject, replacer);
甲JSON stringifier进入在相反的方向,转换的JavaScript数据结构为JSON文本。 JSON不支持循环数据结构,因此请小心不要给JSON字符串赋予循环结构。 http://www.json.org/js.html
你可以用你的成功响应如下:
alert(JSON.stringify(data));
如果您提供JSON结构,您将得到明确的答案。
例如,如果您有以下JSON结构。
var json={ “id”:23,”name”:”marko”};
for(key in json){
alert(key+'->'+json[key]);
}
这对上面的单节点json并不简单。如果JSON结构更深,则需要迭代直到您获得价值:)
或者。最简单的方法是做console.log(json);并看到萤火虫,你会得到什么是json块内。
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>";
}
@casperOne“不是真正的问题”。来吧!伟大的Q marko。 – oma 2012-06-28 07:51:16
@oma不,不是。它没有显示出原创性的研究成果(这不是一个真正的问题),也是“不具有建设性”(主观方便)。也就是说,*答案*没问题,但这并不能解决问题。从Stack Overflow角度来看,这个问题缺乏质量。 – casperOne 2012-06-28 10:55:18
我认为这是一个从程序员的角度来看有效的问题!问题是具体的。 – marko 2012-06-28 13:51:01