2012-01-17 76 views
8

我想调试我的响应(json)并将它显示为一个警告框中的字符串。有没有方便的事情要做?如何将json对象转换为警报框中的字符串?

var myjson = { Name : "Marko" }; 

alert(myjson.toString()); // ? [Object] !!! 
+1

@casperOne“不是真正的问题”。来吧!伟大的Q marko。 – oma 2012-06-28 07:51:16

+0

@oma不,不是。它没有显示出原创性的研究成果(这不是一个真正的问题),也是“不具有建设性”(主观方便)。也就是说,*答案*没问题,但这并不能解决问题。从Stack Overflow角度来看,这个问题缺乏质量。 – casperOne 2012-06-28 10:55:18

+1

我认为这是一个从程序员的角度来看有效的问题!问题是具体的。 – marko 2012-06-28 13:51:01

回答

9

最方便的方式,将使用浏览器的控制台。

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/

+0

如果您有两个对象,即第一个是一个对象,后面是一个对象数组,这个解决方案不能很好地工作。而且我正在使用只有IE9的远程Windows Server。 – marko 2012-01-17 15:42:18

2

您可以使用Firebug或Google Chrome内置控制台分析请求的响应文本。

3

您可以使用JSON.stringify。但是,我不知道它是否适用于所有常见的浏览器。

alert(JSON.stringify(json-object));

+0

根据浏览器的不同,您可能需要在您的页面中包含此信息以使JSON.stringify工作https://github.com/douglascrockford/JSON-js/blob/master/json2.js – MrKiane 2012-01-17 13:14:56

0

尝试此

var myJSONText = JSON.stringify(myObject, replacer); 

甲JSON stringifier进入在相反的方向,转换的JavaScript数据结构为JSON文本。 JSON不支持循环数据结构,因此请小心不要给JSON字符串赋予循环结构。 http://www.json.org/js.html

16

你可以用你的成功响应如下:

alert(JSON.stringify(data)); 
1

如果您提供JSON结构,您将得到明确的答案。

例如,如果您有以下JSON结构。

var json={ “id”:23,”name”:”marko”}; 
    for(key in json){ 
      alert(key+'->'+json[key]); 
    } 

这对上面的单节点json并不简单。如果JSON结构更深,则需要迭代直到您获得价值:)

或者。最简单的方法是做console.log(json);并看到萤火虫,你会得到什么是json块内。

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>"; 
} 
相关问题