[英]How to convert a string to JSON friendly string?
我有一個字符串(文本),我想使用 JSON 解析器進行轉換,以便它對 javascript 友好。
在我的視圖頁面中,我有一些 javascript 看起來像:
var site = {
strings: {
addToCart: @someValue,
所以@someValue 應該是 javascript 安全的,比如雙引號,如果需要的話可以轉義字符等等。
該值@someValue 是一個字符串,但它必須對 javascript 友好,所以我想使用 JSON 解析它。
新的 System.Text.Json 有什么東西嗎?
我試過這個:
return System.Text.Json.JsonDocument.Parse(input).ToString();
但這不起作用,因為我的文本只是一個字符串,而不是 JSON 字符串。
還有另一種解析方法嗎?
escaping 字符串使它們 JSON 安全的規則如下:
雖然這不是絕對必要的,但任何非網絡安全字符(即任何非 ASCII 字符)都可以轉換為其轉義的 Unicode 等價物,以避免潛在的編碼問題。
由此,創建自己的轉換方法非常簡單:
public static string MakeJsonSafe(String s)
{
var jsonEscaped = s.Replace("\\", "\\\\")
.Replace("\"", "\\\"")
.Replace("\b", "\\b")
.Replace("\f", "\\f")
.Replace("\n", "\\n")
.Replace("\r", "\\r")
.Replace("\t", "\\t");
var nonAsciiEscaped = jsonEscaped.Select((c) => c >= 127 ? "\\u" + ((int)c).ToString("X").PadLeft(4, '0') : c.ToString());
return string.Join("", nonAsciiEscaped);
}
(就像我說的, nonAsciiEscaped
階段可以省略,因為它不是絕對必要的。)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.