2012-02-11 24 views
41

Tôi đang cố gắng đưa json vào ứng dụng backbone.js của mình. Json của tôi có " cho mọi báo giá.Làm thế nào để loại bỏ " từ Json của tôi trong javascript?

Có cách nào để tôi xóa mục này không?
tôi đã cung cấp một ví dụ dưới đây:

[{"Id":1,"Name":"Name}] 
+3

Tại sao không dừng điều này xảy ra ngay từ đầu? Hiện tại bạn có _don't_ không có JSON, nhưng cái gì đó trông hơi giống nó. –

+0

Nó đã mã hóa các dấu ngoặc kép. Nó là một vấn đề hoàn toàn khác không liên quan đến Json, nhưng liên quan đến ASP.NET MVC. Chúng tôi có thể muốn xóa bài đăng này. – Frankie

Trả lời

86

Có lẽ bạn có nó trong một biến và đang sử dụng JSON.parse(data);. Trong trường hợp này, sử dụng:

JSON.parse(data.replace(/"/g,'"')); 

Bạn có thể muốn sửa chữa kịch bản JSON-viết của bạn mặc dù, bởi vì " không hợp lệ trong một đối tượng JSON.

+1

Khi tôi thử điều này, tôi thấy mã js của tôi thay đổi thành: 'result.replace (/ "/g, '"') ' – efirat

+0

Đó là những gì tôi cần, cảm ơn! –

+0

@kirlisakal bạn có thể giải quyết vấn đề này ? – turbo2oh

5

Câu trả lời được chấp nhận là đúng, tuy nhiên tôi đã gặp sự cố với điều đó. Khi tôi thêm vào trong mã của tôi, kiểm tra về trình gỡ lỗi, tôi thấy rằng nó thay đổi từ

result.replace(/"/g,'"') 

để

result.replace(/"/g,'"') 

Thay vì điều này tôi sử dụng này

result.replace(/(&quot\;)/g,"\"") 

Bằng cách ký hiệu này nó công trinh.

1
var data = $('<div>').html('[{&quot;Id&quot;:1,&quot;Name&quot;:&quot;Name}]')[0].textContent; 

nên phân tích cú pháp tất cả các giá trị được mã hóa mà bạn cần.

+0

Bí quyết tuyệt vời nếu bạn cần thêm ký tự unescape :) – Genaut

Các vấn đề liên quan