2012-01-17 40 views
8

Tôi muốn gỡ lỗi phản hồi của tôi (json) và để nó hiển thị dưới dạng một chuỗi trong hộp cảnh báo. Có điều gì thuận tiện để làm không?Làm thế nào để chuyển đổi một đối tượng json thành một chuỗi trong một hộp cảnh báo?

var myjson = { Name : "Marko" }; 

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

@casperOne "không phải là câu hỏi thực". Nào! Great Q marko. – oma

+0

@oma Không, không phải. Nó cho thấy không có nỗ lực nghiên cứu ban đầu (đó là "không phải là một câu hỏi thực sự") và cũng "không xây dựng" (những gì thuận tiện là chủ quan). Điều đó nói rằng, * câu trả lời * là tốt, nhưng điều đó không làm cho câu hỏi hay. Câu hỏi thiếu chất lượng từ phối cảnh Stack Overflow. – casperOne

+1

Tôi nghĩ rằng đó là một câu hỏi hợp lệ từ quan điểm của một lập trình viên! Và câu hỏi là cụ thể. – marko

Trả lời

9

Cách thuận tiện nhất, sẽ sử dụng giao diện điều khiển của trình duyệt của bạn.

console.log(json); 

Trong hầu hết các trình duyệt, bạn sẽ có cái nhìn rất rõ về nội dung json.

Alternativly bạn có thể làm một chuỗi với một cho vòng lặp:

var output = ''; 
for (var entry in json) { 
    output += 'key: ' + entry + ' | value: ' + json[entry] + '\n'; 
} 
alert(output); 

Nhưng đây không phải là một cách đệ quy. Đây là một cuộc biểu tình làm việc: http://jsfiddle.net/n695V/

+0

Nếu bạn có hai đối tượng, là đối tượng đầu tiên là một đối tượng và sau đó là một mảng các đối tượng, giải pháp này không hoạt động tốt như vậy. Và tôi đang làm việc trên một Windows Server từ xa chỉ có IE9. – marko

2

Bạn có thể phân tích văn bản phản hồi của yêu cầu bằng bảng điều khiển tích hợp Firebug hoặc Google Chrome.

3

Bạn có thể sử dụng JSON.stringify. Tuy nhiên, tôi không biết nếu nó hoạt động trong tất cả các trình duyệt phổ biến.

cảnh báo (JSON.stringify (đối tượng json));

+0

Tùy thuộc vào trình duyệt bạn có thể cần phải bao gồm điều này trên trang của bạn để làm cho JSON.stringify hoạt động https://github.com/douglascrockford/JSON-js/blob/master/json2.js – MrKiane

0

Hãy thử điều này

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

Một JSON stringifier đi theo hướng ngược lại, chuyển đổi hoạt Javascript cấu trúc dữ liệu vào JSON văn bản. JSON không hỗ trợ các cấu trúc dữ liệu tuần hoàn, vì vậy hãy cẩn thận để không cung cấp các cấu trúc chu kỳ cho trình tạo chuỗi JSON. http://www.json.org/js.html

16

bạn có thể sử dụng sau đây ứng phó thành công của bạn:

alert(JSON.stringify(data)); 
1

Bạn sẽ nhận được câu trả lời rõ ràng, nếu bạn cung cấp cấu trúc JSON.

Ví dụ: nếu bạn có cấu trúc JSON bên dưới.

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

Nó không đơn giản cho trên một nút json. Nếu cấu trúc JSON sâu hơn, bạn cần lặp lại cho đến khi bạn nhận được giá trị :)

Hoặc. Thay vì cách dễ nhất là làm console.log (json); và nhìn thấy trong firebug, bạn sẽ nhận được những gì là bên trong khối 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>"; 
} 
Các vấn đề liên quan