javascript
  • jquery
  • json
  • 2012-02-21 65 views 1 likes 
    1

    我以某种方式得到了一个json结构,如下所示,我的问题是如何使用jQuery解析此问题,以便我可以像使用myJson[0].name那样使用它,并且提醒它以便"M\\xe9t\\xe9o" = Météo如何解析JSON和jQuery中有特殊的字符?

    jquery告诉我这是无效的json为什么? 如果我使用单个反斜杠(“M \ xe9t \ xe9o”),Json使用双反斜杠。语法正确无误。

    var jsonObj = '{"title":[{"id":"1","name": "M\\xe9t\\xe9o"},{"id":"2","name": "Meteo"}]}'; 
    
    var myJson = jQuery.parseJSON(jsonObj); 
    

    回答

    1

    JSON syntax只有allows\uxxxx逃逸。
    将其更改为"M\\u00e9t\\u00e9o"

    如果使用单个反斜杠,它会被Javascript字符串文字解析,所以实际的字符串值包含真正的Unicode字符,而不是转义。换句话说,"M\xe9t\xe9o" === "Météo"

    +0

    我的坏我假设它接受\\ x我会改变它\\ uxxxx看起来像它的作品thx – Marcio 2012-02-21 16:12:27

    0

    这看起来像json不正确(手动?)编码。当你用UTF-8编码时,例如与PHP,你会得到:

    {"title":[{"id":"1","name": "M\u00e9t\u00e9o"},{"id":"2","name": "Meteo"}]} 
    

    这是由JS正确解析。但是解析器无法识别\xe9

    相关问题