Hướng dẫn javascript unescape json quotes - javascript unescape trích dẫn json

I have a user entered JSON data which is then saved to other object. But instead of JSON I get

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
7.

How can I fix it? Thanks.

asked Jul 26, 2015 at 19:00Jul 26, 2015 at 19:00

Hướng dẫn javascript unescape json quotes - javascript unescape trích dẫn json

fivepointsevenfivepointsevenfivepointseven

1,0312 gold badges11 silver badges23 bronze badges2 gold badges11 silver badges23 bronze badges

1

var x = '{\"type\":\"polyline\"}'; x = x.replace(/\"/g, "\"");

and next JSON.parse

results:

"{"type":"polyline"}"

answered Jul 26, 2015 at 19:18Jul 26, 2015 at 19:18

2

Làm thế nào để bạn thoát khỏi trích dẫn kép nếu chuỗi JSON là như sau?

Nội dung chính ShowShow

  • Thoát khỏi chuỗi chữ
  • Hàm để thoát một chuỗi
  • Giới thiệu
  • Tạo và xem đầu ra của chuỗi
  • Lưu trữ một chuỗi trong một biến
  • Kết hợp chuỗi
  • Biến trong chuỗi có nghĩa đen mẫu
  • Chuỗi chữ và giá trị chuỗi
  • Thoát khỏi trích dẫn và dấu nháy đơn trong chuỗi
  • Sử dụng cú pháp chuỗi thay thế
  • Sử dụng ký tự thoát (const slashEscape="It was the last step.\"Stop!\". She shouted." 5)
  • Sử dụng mẫu chữ
  • Chuỗi dài và dòng mới
  • Sự kết luận
  • Làm thế nào để bạn thoát khỏi một báo giá kép trong JavaScript?
  • Làm thế nào để bạn thoát khỏi các trích dẫn đôi?
  • Làm thế nào để bạn thoát khỏi một nhân vật đặc biệt trong JavaScript?
  • Làm thế nào để bạn thoát khỏi trích dẫn?

var str = "[{Company: "XYZ",Description: ""TEST""}]"

Tôi muốn thoát khỏi trích dẫn đôi thứ cấp trong bài kiểm tra giá trị.

Tôi đã thử như sau, nhưng nó không hoạt động.

var escapeStr = str.replace(/""/g,'\"');

Tôi còn thiếu gì?

Đã hỏi ngày 3 tháng 7 năm 2014 lúc 17:09Jul 3, 2014 at 17:09Jul 3, 2014 at 17:09

3

Nó nên là:

var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';

Đầu tiên, tôi đã thay đổi các trích dẫn bên ngoài thành các trích dẫn đơn, vì vậy chúng sẽ không xung đột với các trích dẫn bên trong. Sau đó, tôi đặt dấu gạch chéo ngược trước các trích dẫn trong cùng vào khoảng

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
1, để thoát khỏi chúng. Và tôi đã thoát khỏi dấu gạch chéo ngược để nó được đối xử theo nghĩa đen.

Bạn có thể nhận được kết quả tương tự khi sử dụng hàm JSON:

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});

Đã trả lời ngày 3 tháng 7 năm 2014 lúc 17:16Jul 3, 2014 at 17:16Jul 3, 2014 at 17:16

BarmarbarmarBarmarBarmar

698K53 Huy hiệu vàng469 Huy hiệu bạc578 Huy hiệu Đồng53 gold badges469 silver badges578 bronze badges53 gold badges469 silver badges578 bronze badges

3

Ở đây, trích dẫn bên trong được thoát ra và toàn bộ chuỗi được thực hiện trong một trích dẫn đơn.

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';

Đã trả lời ngày 3 tháng 7 năm 2014 lúc 17:13Jul 3, 2014 at 17:13Jul 3, 2014 at 17:13

ByjeevanbyjeevanbyJeevanbyJeevan

3.5883 huy hiệu vàng35 huy hiệu bạc58 Huy hiệu đồng3 gold badges35 silver badges58 bronze badges3 gold badges35 silver badges58 bronze badges

1

Có nhiều cách khác nhau để thoát khỏi trích dẫn trong một chuỗi. Bài viết này sẽ hiển thị mỗi người.

Thoát khỏi chuỗi chữ

Hàm để thoát một chuỗi

Giới thiệu
There are at least three ways to create a string literal in Javascript - using single quotes, double quotes, or the backtick (
var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
2).
So, if you enclose your string in single quotes, no need to escape double quotes and vis versa.
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."

Tạo và xem đầu ra của chuỗi

var str = "[{Company: "XYZ",Description: ""TEST""}]"
0

Lưu trữ một chuỗi trong một biến

var str = "[{Company: "XYZ",Description: ""TEST""}]"
1

Kết hợp chuỗi

Biến trong chuỗi có nghĩa đen mẫu

Hàm để thoát một chuỗi

Giới thiệu

var str = "[{Company: "XYZ",Description: ""TEST""}]"
2

Tạo và xem đầu ra của chuỗi

Lưu trữ một chuỗi trong một biến

Giới thiệu

Tạo và xem đầu ra của chuỗistring is a sequence of one or more characters that may consist of letters, numbers, or symbols. Strings in JavaScript are primitive data types and immutable, which means they are unchanging.

Lưu trữ một chuỗi trong một biến

Kết hợp chuỗi

Tạo và xem đầu ra của chuỗi

Lưu trữ một chuỗi trong một biến

Kết hợp chuỗi

Chuỗi sử dụng dấu ngoặc kép và trích dẫn đơn có hiệu quả giống nhau. Vì không có quy ước hoặc ưu tiên chính thức cho các chuỗi được trình duyệt đơn hoặc kép, tất cả những gì có vấn đề đang giữ sự nhất quán trong các tệp chương trình dự án.

var str = "[{Company: "XYZ",Description: ""TEST""}]"
6
var escapeStr = str.replace(/""/g,'\"');
0

Cách thứ ba và mới nhất để tạo một chuỗi được gọi là một mẫu theo nghĩa đen. Các mẫu mẫu sử dụng backtick (còn được gọi là giọng nghiêm trọng) và hoạt động giống như các chuỗi thông thường với một vài phần thưởng bổ sung, mà chúng tôi sẽ đề cập trong bài viết này.template literal. Template literals use the backtick (also known as a grave accent) and work the same way as regular strings with a few additional bonuses, which we will cover in this article.template literal. Template literals use the backtick (also known as a grave accent) and work the same way as regular strings with a few additional bonuses, which we will cover in this article.

var escapeStr = str.replace(/""/g,'\"');
1

Cách dễ nhất để xem đầu ra của chuỗi là in nó vào bảng điều khiển, với

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
6:
var escapeStr = str.replace(/""/g,'\"');
2
var escapeStr = str.replace(/""/g,'\"');
3

Một cách đơn giản khác để xuất ra giá trị là gửi một cửa sổ bật lên cảnh báo đến trình duyệt với

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
7:
var escapeStr = str.replace(/""/g,'\"');
4

Chạy dòng trên sẽ tạo ra đầu ra sau trong giao diện người dùng của trình duyệt:

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
7 là một phương pháp thử nghiệm và xem đầu ra ít phổ biến hơn, vì nó có thể nhanh chóng trở nên tẻ nhạt để đóng các cảnh báo.

Lưu trữ một chuỗi trong một biến

Các biến trong JavaScript được đặt tên các container lưu trữ một giá trị, sử dụng các từ khóa

var str = '[{ "Company": "XYZ", "Description": "\\"TEST\\""}]';
9,
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
0 hoặc
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
1. Chúng ta có thể gán giá trị của một chuỗi cho một biến được đặt tên.
var escapeStr = str.replace(/""/g,'\"');
5

Bây giờ biến

const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
2 chứa chuỗi của chúng tôi, chúng tôi có thể tham chiếu nó và in nó vào bảng điều khiển.
var escapeStr = str.replace(/""/g,'\"');
6

Điều này sẽ xuất ra giá trị chuỗi.

var escapeStr = str.replace(/""/g,'\"');
7

Bằng cách sử dụng các biến để đứng cho các chuỗi, chúng tôi không phải gõ lại một chuỗi mỗi lần chúng tôi muốn sử dụng nó, làm cho nó đơn giản hơn để chúng tôi làm việc và thao tác các chuỗi trong các chương trình của chúng tôi.

Kết hợp chuỗi

Concatenation có nghĩa là nối hai hoặc nhiều chuỗi với nhau để tạo ra một chuỗi mới. Để kết nối, chúng tôi sử dụng toán tử nối, được biểu thị bằng biểu tượng

var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
23. Biểu tượng
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
3 cũng là toán tử bổ sung khi được sử dụng với các hoạt động số học. means joining two or more strings together to create a new string. In order to concatenate, we use the concatenation operator, represented by a 3. Biểu tượng
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
3 cũng là toán tử bổ sung khi được sử dụng với các hoạt động số học.
means joining two or more strings together to create a new string. In order to concatenate, we use the concatenation operator, represented by a

const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
3 symbol. The
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
3 symbol is also the addition operator when used with arithmetic operations.

Hãy để tạo ra một ví dụ đơn giản về sự kết hợp, giữa

const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
5 và
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
6.
var escapeStr = str.replace(/""/g,'\"');
8
var escapeStr = str.replace(/""/g,'\"');
9

Concatenation tham gia các chuỗi từ đầu đến cuối, kết hợp chúng và xuất ra một giá trị chuỗi hoàn toàn mới. Nếu chúng ta muốn có một khoảng trống giữa các từ

const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
7 và
const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
8, chúng ta sẽ cần đưa một ký tự khoảng trắng vào một trong các chuỗi:
var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
0
var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
1

Chúng tôi tham gia các chuỗi và các biến chứa các giá trị chuỗi với cách ghép.

var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
2
var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
3

Khi chúng tôi kết hợp hai hoặc nhiều chuỗi thông qua việc kết hợp, chúng tôi đang tạo ra một chuỗi mới mà chúng tôi có thể sử dụng trong suốt chương trình của mình.

Biến trong chuỗi có nghĩa đen mẫu

Một tính năng đặc biệt của tính năng theo nghĩa đen là khả năng bao gồm các biểu thức và biến trong một chuỗi. Thay vì phải sử dụng kết nối, chúng ta có thể sử dụng cú pháp

const simpleString='"It is working", he said.';

const anotherString="Wait, I'm coming too. Said she."
9 để chèn một biến.
var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
4
var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
3

Như chúng ta có thể thấy, bao gồm các biểu thức trong nghĩa đen là một cách khác để hoàn thành kết quả tương tự. Trong trường hợp này, sử dụng các chữ cái có thể dễ dàng hơn để viết và thuận tiện hơn.

Chuỗi chữ và giá trị chuỗi

Bạn có thể nhận thấy rằng các chuỗi chúng tôi viết trong mã nguồn được đặt trong các trích dẫn hoặc backticks, nhưng đầu ra in thực tế không bao gồm bất kỳ trích dẫn nào.

var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
6
var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
7

Có một sự khác biệt khi đề cập đến từng điều này. Một chuỗi chữ là chuỗi như được viết trong mã nguồn, bao gồm các trích dẫn. Giá trị chuỗi là những gì chúng ta thấy trong đầu ra và không bao gồm các trích dẫn.string literal is the string as it is written in the source code, including quotations. A string value is what we see in the output, and does not include quotations.string literal is the string as it is written in the source code, including quotations. A string value is what we see in the output, and does not include quotations.

Trong ví dụ trên,

var str = "[{Company: "XYZ",Description: ""TEST""}]"
00 là một chuỗi theo nghĩa đen và
var str = "[{Company: "XYZ",Description: ""TEST""}]"
01 là một giá trị chuỗi.

Thoát khỏi trích dẫn và dấu nháy đơn trong chuỗi

Do thực tế là các dấu ngoặc kép được sử dụng để biểu thị các chuỗi, phải xem xét đặc biệt khi sử dụng dấu nháy đơn và trích dẫn trong chuỗi. Ví dụ, cố gắng sử dụng dấu nháy đơn ở giữa một chuỗi được trích xuất đơn, sẽ kết thúc chuỗi và JavaScript sẽ cố gắng phân tích phần còn lại của chuỗi dự định là mã.

Chúng ta có thể thấy điều này bằng cách cố gắng sử dụng dấu nháy đơn trong cơn co thắt

var str = "[{Company: "XYZ",Description: ""TEST""}]"
02 dưới đây:
var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
8
var str='[{"Company": "XYZ","Description": "\\"TEST\\""}]';
9

Điều tương tự cũng sẽ áp dụng cho việc cố gắng sử dụng báo giá trong một chuỗi được trích xuất kép.

Để tránh lỗi bị ném vào những tình huống này, chúng tôi có một vài tùy chọn mà chúng tôi có thể sử dụng:

  • Cú pháp chuỗi đối diện
  • Ký tự thoát
  • Mẫu chữ

Chúng tôi sẽ khám phá các tùy chọn dưới đây.

Sử dụng cú pháp chuỗi thay thế

Một cách dễ dàng để đi xung quanh các trường hợp bị cô lập của các chuỗi có khả năng bị hỏng là sử dụng cú pháp chuỗi ngược lại của một chuỗi mà bạn hiện đang sử dụng.

Ví dụ, dấu nháy đơn trong các chuỗi được xây dựng với

var str = "[{Company: "XYZ",Description: ""TEST""}]"
03.
var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
0

Dấu ngoặc kép trong các chuỗi được xây dựng với

var str = "[{Company: "XYZ",Description: ""TEST""}]"
04.
var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
1

Theo cách chúng tôi kết hợp các trích dẫn đơn và đôi, chúng tôi có thể kiểm soát việc hiển thị các dấu ngoặc kép và dấu nháy đơn trong chuỗi của chúng tôi. Tuy nhiên, khi chúng tôi đang làm việc để sử dụng cú pháp nhất quán trong các tệp lập trình dự án, điều này có thể khó duy trì trong suốt cơ sở mã.

Sử dụng ký tự thoát (const slashEscape="It was the last step.\"Stop!\". She shouted." 5)

Chúng ta có thể sử dụng ký tự thoát khỏi dấu gạch chéo ngược (

var str = "[{Company: "XYZ",Description: ""TEST""}]"
05) để ngăn JavaScript diễn giải một trích dẫn là phần cuối của chuỗi.

Cú pháp của

var str = "[{Company: "XYZ",Description: ""TEST""}]"
07 sẽ luôn là một trích dẫn duy nhất và cú pháp của
var str = "[{Company: "XYZ",Description: ""TEST""}]"
08 sẽ luôn là một trích dẫn kép, mà không sợ phá vỡ chuỗi.

Sử dụng phương pháp này, chúng ta có thể sử dụng các dấu nháy đơn trong các chuỗi được xây dựng với

var str = "[{Company: "XYZ",Description: ""TEST""}]"
03.
var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
2

Chúng tôi cũng có thể sử dụng các dấu ngoặc kép trong các chuỗi được xây dựng với

var str = "[{Company: "XYZ",Description: ""TEST""}]"
03.
var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
3

Phương pháp này trông có vẻ lộn xộn hơn một chút, nhưng bạn có thể cần sử dụng cả dấu nháy đơn và dấu ngoặc kép trong cùng một chuỗi, điều này sẽ khiến việc thoát ra cần thiết.

Sử dụng mẫu chữ

Các chữ cái mẫu được xác định với các backticks, và do đó cả trích dẫn và dấu nháy đơn đều có thể được sử dụng một cách an toàn mà không cần bất kỳ loại nào thoát hoặc xem xét thêm.

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
4

Ngoài việc ngăn chặn sự cần thiết của việc thoát khỏi ký tự và cho phép các biểu thức nhúng, các mẫu văn bản cũng cung cấp hỗ trợ đa dòng, mà chúng tôi sẽ thảo luận trong phần tiếp theo.

Với cú pháp chuỗi xen kẽ, sử dụng các ký tự thoát và sử dụng nghĩa đen mẫu, có một số cách để tạo một chuỗi một cách an toàn.

Chuỗi dài và dòng mới

Có những lúc bạn có thể muốn chèn một ký tự mới hoặc trả về vận chuyển trong chuỗi của bạn. Các ký tự thoát

var str = "[{Company: "XYZ",Description: ""TEST""}]"
11 hoặc
var str = "[{Company: "XYZ",Description: ""TEST""}]"
12 có thể được sử dụng để chèn một dòng mới vào đầu ra của mã.
var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
5
var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
6

Điều này hoạt động về mặt kỹ thuật để có được đầu ra của chúng tôi trên nhiều dòng. Tuy nhiên, viết một chuỗi rất dài trên một dòng sẽ nhanh chóng trở nên rất khó đọc và làm việc. Chúng ta có thể sử dụng toán tử nối để hiển thị chuỗi trên nhiều dòng.

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
7

Thay vì kết hợp nhiều chuỗi, chúng ta có thể sử dụng ký tự thoát

var str = "[{Company: "XYZ",Description: ""TEST""}]"
05 để thoát khỏi dòng mới.
var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
8

Lưu ý: Phương pháp này không được ưa thích, vì nó có thể gây ra các vấn đề với một số trình duyệt và máy thu nhỏ.: This method is not preferred, as it may cause issues with some browsers and minifiers.: This method is not preferred, as it may cause issues with some browsers and minifiers.

Để làm cho mã dễ đọc hơn, thay vào đó chúng ta có thể sử dụng các chuỗi theo nghĩa đen. Chúng loại bỏ sự cần thiết phải nối hoặc thoát ra trên các chuỗi dài chứa các dòng mới. Chuỗi cũng như Newlines sẽ được bảo tồn.

var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
9
var str=JSON.stringify({Company: "XYZ", Description: '"TEST"'});
6

Điều quan trọng là phải nhận thức được tất cả các cách tạo ra các dòng và chuỗi trải rộng trên nhiều dòng, vì các cơ sở mã khác nhau có thể sử dụng các tiêu chuẩn khác nhau.

Sự kết luận

Trong bài viết này, chúng tôi đã xem qua những điều cơ bản khi làm việc với các chuỗi trong JavaScript, từ việc tạo và hiển thị các chữ viết bằng cách sử dụng các trích dẫn đơn và đôi, tạo ra các mẫu chữ, nối, thoát và gán các giá trị chuỗi cho các biến.

Làm thế nào để bạn thoát khỏi một báo giá kép trong JavaScript?

Sử dụng ký tự Escape (\), chúng ta có thể sử dụng ký tự thoát hiểm (\) để ngăn JavaScript diễn giải một trích dẫn là phần cuối của chuỗi. Cú pháp của \ 'sẽ luôn là một trích dẫn duy nhất và cú pháp của \ "sẽ luôn là một trích dẫn kép, mà không sợ phá vỡ chuỗi.\" will always be a double quote, without any fear of breaking the string.\" will always be a double quote, without any fear of breaking the string.

Làm thế nào để bạn thoát khỏi các trích dẫn đôi?

Bạn cần thoát khỏi trích dẫn đơn khi chữ được đặt trong mã đơn bằng cách sử dụng dấu gạch chéo ngược (\) hoặc cần thoát khỏi trích dẫn kép khi chữ được đặt trong mã kép bằng cách sử dụng dấu gạch chéo ngược (\).... JavaScript ..

Làm thế nào để bạn thoát khỏi một nhân vật đặc biệt trong JavaScript?

Để sử dụng một ký tự đặc biệt như một nhân vật thông thường, hãy dành cho nó bằng một dấu gạch chéo ngược: \..Đó cũng được gọi là người trốn thoát một nhân vật.prepend it with a backslash: \. . That's also called “escaping a character”.prepend it with a backslash: \. . That's also called “escaping a character”.

Làm thế nào để bạn thoát khỏi trích dẫn?

Bạn có thể đặt một ký tự dấu gạch chéo ngược theo sau là một trích dẫn (\ "hoặc \ ')., nhưng không được in.put a backslash character followed by a quote ( \" or \' ). This is called an escape sequence and Python will remove the backslash, and put just the quote in the string. Here is an example. The backslashes protect the quotes, but are not printed.put a backslash character followed by a quote ( \" or \' ). This is called an escape sequence and Python will remove the backslash, and put just the quote in the string. Here is an example. The backslashes protect the quotes, but are not printed.