簡體   English   中英

JSON.parse:使用PHP的錯誤轉義字符

[英]JSON.parse: bad escaped character with php

我面臨JSON解析問題。 我在php中有這個:

 json_encode(getTeams(),JSON_HEX_APOS);

它返回大量數據。

樣本數據:為進一步澄清,我可以說:

my_encoded_data = 
     {
        "13": "Germany-1",
        "14": "Russia-1",
        "15": "Switzerland-1",
        "16": "Canada-1",
        "17": "USA-1",
        "18": "USA-2",
        "19": "Germany-2",
        "20": "Italy-1",
        "21": "Switzerland-2",
        "22": "Austria-1",
        "23": "Italy-2",
        "24": "Netherlands-1",
        "25": "Poland-1",
        "26": "Latvia-1",
        "27": "Russia-2",
        "28": "Czech Republic-1",
        "29": "Great Britain-1",
        "30": "France-1",
        "31": "Canada-2",
        "32": "Slovakia-1",
        "43": "A. Florschütz/T. Wustlich",
        "44": "P. Leitner/A. Resch",
        "46": "G. Albrecht/E. Pothier",
        "48": "C. Moffat/M. Moffat",
        "50": "V. Boizov/D. Khamkin",
        "51": "M. Kuzmitch/J. Veselov",
        "53": "T. Schiegl/M. Schiegl",
        "56": "P. Griffal/D. Joye",
        "59": "A. Linger/W. Linger",
        "62": "G. Plankensteiner/O. Haselrieder",
        "65": "A. Sics/J. Sics",
        "68": "C. Oberstolz/P. Gruber"
    }

我已經通過將數據分成小部分進行測試以在jsonlint中進行驗證。 它顯示了有效的json。 那么我已經在javascript中將其分配了:

window.objteamsFromServer  = my_encoded_data;

然后我想像這樣在json中解析它:

arrSearch = window.objteamsFromServer;

它給了我這個錯誤:

JSON.parse: bad escaped character 

我該如何解決?

讓我知道是否需要任何信息。

謝謝,
Awlad

從您的問題中很難確切地知道my_encoded_data是什么,但是聽起來好像您正在將json_encode的結果輸出到JavaScript源代碼中,例如(從瀏覽器的角度來看):

window.objteamsFromServer = {
    "13": "Germany-1",
    "14": "Russia-1",
    "15": "Switzerland-1",
    "16": "Canada-1",
    "17": "USA-1",
    // ...and so on
};

然后嘗試使用JSON.parse對其進行解析。

你不會那樣做。 JavaScript引擎將已經解析了該對象初始化程序(它不是JSON,而是JavaScript源代碼),因此您只需直接使用該值即可:

console.log(window.objteamsFromServer[13]); // "Germany-1"

我猜您可能由於以下行而收到此錯誤:

"43": "A. Florschütz/T. Wustlich",

注意上面名稱中的“ü”。

一種方法是在服務器端對數據進行編碼,然后在客戶端進行解碼。 使用JavaScript的decodeURIComponent函數在客戶端進行解碼。

有關數據的服務器端編碼,請參閱php文檔。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM