2017-01-19 5 views
0

Я пытаюсь использовать внешний файл JSON для создания графика в cytoscape.js. Цель состоит в том, чтобы получать изменения на основе событий на графиках (например, изменение входных данных). Для достижения этой цели мне пришло в голову использование внешних файлов JSON.Неожиданный токен] ошибка во время внешнего вызова json-файла для cytoscape.js

Используя следующий вызов для извлечения содержимого JSON:

var treeData; 
var xhttp = new XMLHttpRequest(); 
xhttp.onreadystatechange = function() { 
    if (this.readyState == 4 && this.status == 200) { 
     treeData = JSON.parse(this.responseText); 

    } 
}; 
xhttp.open("GET", "http://localhost/myfile.json", true); 
xhttp.send(); 

и подачи к элементам treeData:

elements: treeData, 

(я пытался без разбора JSON, а).

Ниже приводится структура JSON файла:

{ 
"nodes": [ 
    { "data": { "id": "j", "name": "Jerrymmmmmmm", "faveColor": "#6FB1FC", "size": 150} }, 
    { "data": { "id": "e", "name": "Elainemmmmmmm", "faveColor": "#EDA1ED", "size": 100 } }, 
    { "data": { "id": "k", "name": "Kramemmmmrmmm", "faveColor": "#86B342", "size":90 } }, 
    { "data": { "id": "g", "name": "Georgemmmmmmm", "faveColor": "#F5A45D", "size":75} }, 
    ], 
"edges": [ 
    { "data": { "source": "j", "target": "e", "faveColor": "red", } }, 
    { "data": { "source": "j", "target": "k", "faveColor": "red",} }, 
    { "data": { "source": "j", "target": "g", "faveColor": "black",} }, 
] 
    } 

Получение следующее сообщение об ошибке: Неожиданный маркер] в формате JSON в положении 1449 в JSON.parse() в XMLHttpRequest.xhttp.onreadystatechange.

помощи высоко оценили ... спасибо

+0

Ваш JSON в силе. У вас есть несколько конечных запятых, например. '..." faveColor ":" black ",}},'. Вы должны удалить их. Вы можете проверить правильность строки JSON по адресу http://jsonlint.com. –

+0

попробовал это также. –

+0

Используйте следующую страницу, чтобы проверить ваш JSON и попробовать свой код еще раз. Http://jsonlint.com/ –

ответ

2

У вас есть некоторые дополнительные запятые там приятель. После «красного», после «черного», после вашего последнего «узла» объекта и после вашего последнего объекта «edge». Попробуйте это:

{ 
    "nodes": [{ 
     "data": { 
      "id": "j", 
      "name": "Jerrymmmmmmm", 
      "faveColor": "#6FB1FC", 
      "size": 150 
     } 
    }, { 
     "data": { 
      "id": "e", 
      "name": "Elainemmmmmmm", 
      "faveColor": "#EDA1ED", 
      "size": 100 
     } 
    }, { 
     "data": { 
      "id": "k", 
      "name": "Kramemmmmrmmm", 
      "faveColor": "#86B342", 
      "size": 90 
     } 
    }, { 
     "data": { 
      "id": "g", 
      "name": "Georgemmmmmmm", 
      "faveColor": "#F5A45D", 
      "size": 75 
     } 
    }], 
    "edges": [{ 
     "data": { 
      "source": "j", 
      "target": "e", 
      "faveColor": "red" 
     } 
    }, { 
     "data": { 
      "source": "j", 
      "target": "k", 
      "faveColor": "red" 
     } 
    }, { 
     "data": { 
      "source": "j", 
      "target": "g", 
      "faveColor": "black" 
     } 
    }] 
} 

Кроме того, очень полезный инструмент, который может помочь вам ошибки JSON отладки является jsonlint: http://jsonlint.com/