0
D3は変数で参照されるJSONデータを取得しない奇妙なエラーがありますが、コンソールログからコピーして貼り付けると、同じ変数に置き換えます。D3予期せぬ値の翻訳、変数の受け入れを受け付けません
ので、JSONのこのソースは動作しません。
function reformat(data) {
var jsonObject = JSON.parse(data, function(k, v) {
return (typeof v === "object" || isNaN(v)) ? v : parseInt(v, 10);
});
var treeData = (JSON.stringify(makeTree(jsonObject), null, 4));
//etc code for D3
}
しかし、私は文字通りコンソールを介してそれを印刷し、そのように宣言した場合:
treeData = [
{
"id": 1,
"name": "Start",
"children": [
{
"id": 2,
"name": "Decision A",
"children": [
{
"id": 4,
"name": "Possibility A-1",
"children": [
{
"id": 8,
"name": "Consequence A-1"
}
]
},
{
"id": 5,
"name": "Possibility A-2",
"children": [
{
"id": 9,
"name": "Consequence A-2"
}
]
}
]
},
{
"id": 3,
"name": "Decision B",
"children": [
{
"id": 6,
"name": "Possibility B-1",
"children": [
{
"id": 10,
"name": "Consequence B-1"
}
]
},
{
"id": 7,
"name": "Possibility B-2",
"children": [
{
"id": 11,
"name": "Consequence B-2"
}
]
}
]
}
]
}
];
は突然正常に動作します。変数のコピーと再宣言を続けることはできません。出力が同じ場合、なぜそれを受け入れないのですか?
機能は、Webページのロード時に1回呼び出されます:
function reqListener() {
console.log(this.responseText);
}
var oReq = new XMLHttpRequest();
oReq.onload = function() {
reformat(this.responseText);
};
oReq.open("get", "getData.php", true);
oReq.send();