Cách xóa & quot; từ Json của tôi trong javascript?


82

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 trích dẫn.

Có cách nào để tôi loại bỏ điều này không?
Tôi đã cung cấp một mẫu bên dưới:

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

3
Tại sao không ngăn điều này xảy ra ngay từ đầu? Hiện tại, bạn không có JSON nào cả, nhưng một cái gì đó trông hơi giống nó.
Các cuộc đua ánh sáng trong quỹ đạo

Nó được mã hóa các dấu ngoặc kép. Đó 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

sử dụng thay vì thay thế stackoverflow.com/questions/11147468/...
Harun Karaca

Câu trả lời:


162

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

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

Tuy nhiên, bạn có thể muốn sửa tập lệnh viết JSON của mình vì "không hợp lệ trong đối tượng JSON.


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

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

Điều này hoạt động, nhưng nếu dữ liệu có một số giá trị như thế này 10"6 inch display:?
Shyam Kansagra 14/03/19

Sau đó, bạn có thể muốn sửa tập lệnh viết JSON của mình.
Niet the Dark Absol

Tôi thấy điều này trong một API không phải của tôi. Tại sao nó sẽ tạo ra "thay vì "? (Tôi nghĩ đó là một ứng dụng phản ứng)
stevec

17

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

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

đến

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

Thay vì cái này, tôi sử dụng cái đó:

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

Theo ký hiệu này, nó hoạt động.


Có nó hoạt động! nhưng tôi cần để tùy chỉnh đối tượng Session để sửa chữa :( này
muhammad tayyab

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

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


Đó là giải pháp tốt nhất. Tôi đã có rất nhiều charecters thoát. Thủ thuật này không thoát trên tất cả
Gultekin

0

Những điều sau đây phù hợp với tôi:

function decodeHtml(html) {
    let areaElement = document.createElement("textarea");
    areaElement.innerHTML = html;

    return areaElement.value;
}

0

tôi đã sử dụng tính năng thay thế trong Notepad ++ và thay thế &quot;(không có dấu ngoặc kép) bằng "và kết quả là json hợp lệ

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.