Jak kodować '
do \u0027
z JSON.NET?Jak kodować pojedynczy cudzysłów/apostrof w JSON.NET
więc, że ciąg json będzie wyglądać mniej więcej tak:
{"Id":8,"CompanyName":"Jane\u0027s bakery"}
Jak kodować '
do \u0027
z JSON.NET?Jak kodować pojedynczy cudzysłów/apostrof w JSON.NET
więc, że ciąg json będzie wyglądać mniej więcej tak:
{"Id":8,"CompanyName":"Jane\u0027s bakery"}
Json.NET 4.5 Release 11 dodano opcję kontrolowania ciąg ucieczki. Jedną z opcji jest uciec od wszystkich znaków HTML, które zawierają pojedyncze cudzysłowy.
Próbka połączeń
Newtonsoft.Json.JsonConvert.SerializeObject(your_object,
Newtonsoft.Json.Formatting.None,
new Newtonsoft.Json.JsonSerializerSettings
{ StringEscapeHandling = Newtonsoft.Json.StringEscapeHandling.EscapeHtml })
czy można kodować za pomocą pojedynczego cudzysłowu? na przykład '{'Id': 8, 'CompanyName': 'Jane \ u0027s bakery'}'? – Serge
Sądziłem, miałem ten sam wymóg, ale komentarz @ nick_w za uświadomił mi, że nie potrzeba do ucieczki apostrofów w ogóle.
Jeśli generujesz json jako ciąg w kodzie po stronie serwera, a następnie wyprowadzasz go do javascript po stronie klienta, aby można go było przekonwertować na obiekty javascript, a następnie wymuszenie nie jest wymagane.
(kod pokazany używając stylu asp składni)
Używanie dodatkowych czynności wymagających ucieczki apostrofów ...
var myData = JSON.parse('<%=myServerGeneratedStringWithSingleQuotesEscaped %>');
Korzystanie z JSON, jak to jest ...
var myData = <%=myServerGeneratedString %>;
Javascript zinterpretuje niecytowany ciąg znaków, taki jak
[{"name": "Bill"}, {"name": "Ted"}]
jako obiekty javascript.
Ponieważ tak łatwo można się pomylić, gdy mamy do czynienia z ciągami po stronie serwera i po stronie klienta, przypomnienie może być przydatne dla kogoś. Może, ale nie musi, odnosić się do PO - jestem pewien, że istnieje wiele przypadków, w których pojedyncze cytaty rzeczywiście potrzebują ucieczki.
Dzięki za tę podpowiedź. Ale jeśli parametr 'myServerGeneratedString' jest pusty, a użytkownik zrzuci pojedyncze limity, wystąpi błąd składniowy JavaScript, którego nie można obsłużyć. Jeśli trzymasz pojedyncze przydziały i 'myServerGeneratedString' jest pusty, nie będzie więcej szkód niż pusty ciąg, który możesz sprawdzić. Dlatego trzymam je nawet w jakiś sposób brzydkie. –
Dlaczego trzeba kodować apostrofy w ten sposób? '{" Id ": 8," CompanyName ":" Jane's bakery "}' jest prawidłowym JSON. –
ParseJSON JjQuery zawodzi z wyjątkiem z powodu apostrofu. – CoffeeCode
Rozumiem. W jaki sposób twój kod front-end zdobywa JSON? –