语法错误:JSON中位置1处有意外的令牌'

4

是的,我知道问题在于JSON格式不正确,但我已经阅读了很多问题,整个JSON字符串甚至所有这些内容,我都无法找出问题所在。

我从服务器获取一个json字符串响应,并尝试使用json.parse(string)进行解析,但总是得到相同的错误:

在JSON的位置1处未捕获的SyntaxError:意外的令牌', 在JSON.parse()处 在:1:6

有人能帮助我吗?我看不出问题所在。

这是原始字符串格式化后的样子:

"{'0': [{'text': 'conquer', 'value': 1559.0}, {'text': 'woman', 'value': 1559.0}, {'text': 'not', 'value': 866.0}, {'text': 'forget', 'value': 842.0}, {'text': 'books', 'value': 842.0}, {'text': 'last', 'value': 645.0}, {'text': 'imdb', 'value': 645.0}, {'text': 'years', 'value': 645.0}, {'text': 'find', 'value': 519.0}, {'text': 'where', 'value': 519.0}, {'text': 'pages', 'value': 519.0}, {'text': 'tattoo', 'value': 519.0}, {'text': 'know', 'value': 481.0}, {'text': 'potter', 'value': 481.0}, {'text': 'universe', 'value': 481.0}, {'text': 'harry', 'value': 481.0}, {'text': 'of', 'value': 481.0}, {'text': 'data', 'value': 481.0}, {'text': 'how', 'value': 388.0}, {'text': 'n', 'value': 353.0}, {'text': 'netflix', 'value': 256.0}, {'text': 'should', 'value': 256.0}, {'text': 'bike', 'value': 255.0}, {'text': 'love', 'value': 255.0}, {'text': 'my', 'value': 255.0}, {'text': 'incestuous', 'value': 242.0}, {'text': 'july', 'value': 242.0}, {'text': 'cortázar', 'value': 242.0}, {'text': 'relationships', 'value': 242.0}, {'text': 'say', 'value': 236.0}, {'text': 'phrases', 'value': 236.0}, {'text': 'goodbye', 'value': 236.0}, {'text': 'power', 'value': 215.0}, {'text': 'world', 'value': 215.0}, {'text': 'anorexia', 'value': 215.0}, {'text': 'fashion', 'value': 215.0}, {'text': 'the', 'value': 202.0}, {'text': 'a', 'value': 167.0}, {'text': 'like', 'value': 147.0}, {'text': 'you', 'value': 147.0}, {'text': 'this', 'value': 147.0}, {'text': 'facebook', 'value': 147.0}, {'text': 'give', 'value': 147.0}, {'text': 'next', 'value': 129.0}, {'text': 'according', 'value': 128.0}, {'text': 'only', 'value': 127.0}, {'text': 'building', 'value': 127.0}, {'text': 'constructed', 'value': 127.0}, {'text': 'letters', 'value': 127.0}, {'text': 'if', 'value': 126.0}, {'text': 'psychopath', 'value': 108.0}, {'text': 'are', 'value': 108.0}, {'text': 'define', 'value': 108.0}, {'text': 'your', 'value': 108.0}, {'text': 'tastes', 'value': 108.0}, {'text': 'could', 'value': 108.0}, {'text': 'mexicans', 'value': 105.0}, {'text': 'know', 'value': 105.0}, {'text': 'must', 'value': 105.0}, {'text': 'illustrators', 'value': 105.0}, {'text': 'brain', 'value': 96.0}, {'text': 'porn', 'value': 96.0}, {'text': 'affects', 'value': 96.0}, {'text': 'never', 'value': 91.0}, {'text': 'movies', 'value': 89.0}, {'text': 'what', 'value': 82.0}, {'text': 'option', 'value': 80.0}, {'text': 'black', 'value': 80.0}, {'text': 'dress', 'value': 80.0}, {'text':

3
在原始JSON中,对于键和值字符串需要使用双引号而非单引号。https://en.wikipedia.org/wiki/JSON#Example - ryannjohnson
2个回答

12

在您的 JSON 中,只需使用 " 而不是 '

var test = JSON.parse('{"0": [{"text": "conquistar", "value": 1559.0}, {"text": "mujer", "value": 1559.0}, {"text": "no", "value": 866.0}, {"text": "olvidar", "value": 842.0}, {"text": "libros", "value": 842.0}, {"text": "últimos", "value": 645.0}, {"text": "imdb", "value": 645.0}, {"text": "años", "value": 645.0}, {"text": "encontrarás", "value": 519.0}, {"text": "donde", "value": 519.0}, {"text": "páginas", "value": 519.0}, {"text": "tatuaje", "value": 519.0}, {"text": "sabías", "value": 481.0}, {"text": "potter", "value": 481.0}, {"text": "universo", "value": 481.0}, {"text": "harry", "value": 481.0}, {"text": "del", "value": 481.0}, {"text": "datos", "value": 481.0}, {"text": "cómo", "value": 388.0}, {"text": "n", "value": 353.0}, {"text": "netflix", "value": 256.0}, {"text": "deberías", "value": 256.0}, {"text": "bicicleta", "value": 255.0}, {"text": "amo", "value": 255.0}, {"text": "mi", "value": 255.0}, {"text": "incestuosas", "value": 242.0}, {"text": "julio", "value": 242.0}, {"text": "cortázar", "value": 242.0}, {"text": "relaciones", "value": 242.0}, {"text": "decir", "value": 236.0}, {"text": "frases", "value": 236.0}, {"text": "adiós", "value": 236.0}, {"text": "poder", "value": 215.0}, {"text": "mundo", "value": 215.0}, {"text": "anorexia", "value": 215.0}, {"text": "moda", "value": 215.0}, {"text": "los", "value": 202.0}, {"text": "a", "value": 167.0}, {"text": "like", "value": 147.0}, {"text": "ves", "value": 147.0}, {"text": "esto", "value": 147.0}, {"text": "facebook", "value": 147.0}, {"text": "das", "value": 147.0}, {"text": "próximo", "value": 129.0}, {"text": "según", "value": 128.0}, {"text": "único", "value": 127.0}, {"text": "edificio", "value": 127.0}, {"text": "construido", "value": 127.0}, {"text": "cartas", "value": 127.0}, {"text": "si", "value": 126.0}, {"text": "psicópata", "value": 108.0}, {"text": "eres", "value": 108.0}, {"text": "definir", "value": 108.0}, {"text": "tus", "value": 108.0}, {"text": "gustos", "value": 108.0}, {"text": "podrían", "value": 108.0}, {"text": "mexicanos", "value": 105.0}, {"text": "conocer", "value": 105.0}, {"text": "debes", "value": 105.0}, {"text": "ilustradores", "value": 105.0}, {"text": "cerebro", "value": 96.0}, {"text": "porno", "value": 96.0}, {"text": "afecta", "value": 96.0}, {"text": "nunca", "value": 91.0}, {"text": "películas", "value": 89.0}, {"text": "qué", "value": 82.0}, {"text": "opción", "value": 80.0}, {"text": "negro", "value": 80.0}, {"text": "vestir", "value": 80.0}, {"text": "mejores", "value": 78.0}, {"text": "de", "value": 67.0}, {"text": "por", "value": 65.0}, {"text": "amor", "value": 64.0}, {"text": "en", "value": 64.0}, {"text": "directores", "value": 63.0}, {"text": "cine", "value": 63.0}, {"text": "nuevos", "value": 63.0}, {"text": "terror", "value": 63.0}, {"text": "para", "value": 61.0}, {"text": "le", "value": 61.0}, {"text": "pasa", "value": 61.0}, {"text": "lo", "value": 61.0}, {"text": "la", "value": 59.0}, {"text": "las", "value": 58.0}, {"text": "un", "value": 56.0}, {"text": "el", "value": 56.0}, {"text": "mejor", "value": 47.0}, {"text": "baile", "value": 45.0}, {"text": "erótico", "value": 45.0}, {"text": "que", "value": 42.0}, {"text": "elvie", "value": 40.0}, {"text": "videojuego", "value": 40.0}, {"text": "exclusivo", "value": 40.0}, {"text": "vagina", "value": 40.0}, {"text": "ver", "value": 39.0}, {"text": "una", "value": 39.0}, {"text": "tu", "value": 39.0}, {"text": "canciones", "value": 38.0}, {"text": "dije", "value": 32.0}, {"text": "versos", "value": 32.0}, {"text": "tengo", "value": 32.0}, {"text": "te", "value": 32.0}, {"text": "siempre", "value": 32.0}, {"text": "fiesta", "value": 32.0}, {"text": "pena", "value": 32.0}, {"text": "pero", "value": 32.0}, {"text": "dan", "value": 32.0}, {"text": "bailas", "value": 32.0}, {"text": "ganará", "value": 32.0}, {"text": "dicaprio", "value": 32.0}, {"text": "oscar", "value": 32.0}, {"text": "todo", "value": 30.0}, {"text": "inspiró", "value": 29.0}, {"text": "bohemia", "value": 29.0}, {"text": "diseñadora", "value": 29.0}, {"text": "klimt", "value": 29.0}, {"text": "gustav", "value": 29.0}, {"text": "estás", "value": 27.0}, {"text": "soñar", "value": 27.0}, {"text": "señal", "value": 27.0}, {"text": "público", "value": 27.0}, {"text": "desnudo", "value": 27.0}, {"text": "consumes", "value": 25.0}, {"text": "rostro", "value": 25.0}, {"text": "droga", "value": 25.0}, {"text": "fotografías", "value": 25.0}, {"text": "con", "value": 17.0}, {"text": "es", "value": 13.0}, {"text": "hacer", "value": 10.0}, {"text": "tatuajes", "value": 9.0}, {"text": "wars", "value": 9.0}, {"text": "star", "value": 9.0}, {"text": "inspirados", "value": 9.0}, {"text": "razones", "value": 9.0}, {"text": "vida", "value": 8.0}, {"text": "zombies", "value": 6.0}, {"text": "novelas", "value": 6.0}, {"text": "amante", "value": 6.0}, {"text": "marciales", "value": 6.0}, {"text": "tiene", "value": 6.0}, {"text": "artes", "value": 6.0}, {"text": "trip", "value": 2.0}, {"text": "road", "value": 2.0}, {"text": "perdonar", "value": 1.0}, {"text": "posible", "value": 1.0}, {"text": "infidelidad", "value": 1.0}]}');

console.log(test);


6

ECMA-404 JSON数据交换标准指出:

一个字符串是由零个或多个Unicode字符组成的序列,用双引号括起来。

在您的情况下,您使用单引号。

因此,您可以使用str.replace("'", """);


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接