2010-06-28 35 views
6

我想清理從數據庫中檢索的字符串。清理字符串是有效的JSON值

我就遇到了這個問題,其中一個屬性值(從數據庫中的名稱)有一個嵌入的製表符,和Chrome給了我一個無效的標記錯誤嘗試加載JSON對象。

所以現在,我去http://www.json.org/和上側有一個規範。但我無法理解如何使用這個規範寫洗面奶:

  • 「」
  • 字符

字符

  • 字符

  • 除了任何-Unicode的character- - 「 - 或 - 或 - 控制字符
  • \」
  • \\
  • /
  • \ b
  • \˚F
  • \ n
  • \ r
  • \噸
  • \Ú四己數字

鑑於一個字符串,我該如何「清理」它才能符合這個規範?

具體來說,我很困惑:不規範允許TAB(0x0900)字?如果是這樣,Chrome爲什麼會給出無效的TOKEN錯誤?

回答

13

Tab字符(實際0x09,不逃逸)不能引號內的JSON出現(儘管它們在引號外面有效的空格)。你需要用\t\u0009(前者更可取)將它們轉義出來。

JSON。組織說,一個字符串的轉義字符必須是:

除「或\ 控制字符

標籤被視爲一個控制字符任何Unicode字符