#javascript #json
Вопрос:
Я работаю над модифицированной версией этого приложения
Я добавил в программу ссылку другого типа, я хочу добавить, какого рода ссылки находятся в документе JSON, но когда я ввожу эту информацию в виде текста:
{"nodes":
[
{"id":2,"title":"1","x":181,"y":146},
{"id":3,"title":"2","x":608,"y":153},
{"id":4,"title":"3","x":153,"y":398},
{"id":5,"title":"4","x":548,"y":405}
]
,"edges":
[
{"source":2,"target":3,"typeLink":"arrow"},
{"source":4,"target":5,"typeLink":"circle-full-blue"},
{"source":5,"target":3,"typeLink":"circle_square-hollow-blue"}
]
}
В документе json, который выходит из него, отсутствует информация о «типовой ссылке» :
0: Объект { источник: {…}, цель: {…} }
Я не изменял исходный код, за исключением журнала консоли :
d3.select("#upload-input").on("click", function(){
document.getElementById("hidden-file-upload").click();
});
d3.select("#hidden-file-upload").on("change", function(){
if (window.File amp;amp; window.FileReader amp;amp; window.FileList amp;amp; window.Blob) {
var uploadFile = this.files[0];
var filereader = new window.FileReader();
filereader.onload = function(){
var txtRes = filereader.resu<
console.log("#TXT : ");
console.log(txtRes);
// TODO better error handling
try{
var jsonObj = JSON.parse(txtRes);//missing typeLink
console.log("#JSON : ");
console.log(jsonObj);
Комментарии:
1. Используйте JSON.parse, чтобы превратить строку в объект JS, и используйте JSON.stringify, чтобы превратить объект JS в строку.
Ответ №1:
У меня также была такая же проблема раньше, формат json в строку по какой-то причине может отсутствовать некоторая информация. Чтобы исправить это:
JSON.stringify(json)
=> Превратит json в строковый формат, никакой информации не пропущено
JSON.parse(string)
=> Превратит строку в формат json, никакой информации не пропущено
Попробуйте использовать эти функции по мере необходимости и посмотрите, сработает ли это.
Комментарии:
1. Он уже употребляет
JSON.parse()
.var jsonObj = JSON.parse(txtRes)
2. Ах, вы правы, извините, я этого не видел. Возможно, проблема в том, что загружаемый файл содержит JSON, который не используется
JSON.stringify()
при полученииfilereader.result
недостающей информации. Попробуйте загрузить JSON в виде строки в файл, чтобы избежать этого, затемJSON.parse()
вы сможете проанализировать загруженную строку, т. Е.filereader.result