1

こんにちは、変数に書き込むとjsonが正しい理由がわかりません:

var theUI  = {
"nodes":{"progetto 1":{"color":"red", "shape":"dot", "alpha":1},
"demos":{"color":"#b2b19d", shape:"dot", "alpha":1},
"halfviz":{"color":"#a7af00", "alpha":0, "link":""},
"atlas":{"color":"#a7af00", "alpha":0, "link":""},
"echolalia":{"color":"#a7af00", "alpha":0, "link":""},
"docs":{"color":"#b2b19d", "shape":"dot", "alpha":1},
"reference":{"color":"#922E00", "alpha":0, "link":""},
"introduction":{"color":"#922E00", "alpha":0, "link":""},
"code":{"color":"#b2b19d", "shape":"dot", "alpha":1},
"github":{"color":"orange", "alpha":0, "link":""},
".zip":{"color":"orange", "alpha":0, "link":""},
".tar.gz":{"color":"orange", "alpha":0, "link":""}
},
"edges":{
"progetto 1":{
"demos":{"length":.8},
"docs":{"length":.8},
"code":{"length":.8}
},
"demos":{"halfviz":{},
"atlas":{},
"echolalia":{}
},
"docs":{"reference":{},
"introduction":{}
},
"code":{".zip":{},
".tar.gz":{},
"github":{}
}
}
}
var sys = arbor.ParticleSystem()
sys.parameters({stiffness:900, repulsion:2000, gravity:true, dt:0.015})
sys.renderer = Renderer("#sitemap")
sys.graft(theUI)
var nav = Nav("#nav")
$(sys.renderer).bind('navigate', nav.navigate)
$(nav).bind('mode', sys.renderer.switchMode)
nav.init()
})

ファイルjsonからデータを渡すと、プログラムは機能しません。

var theUI  = $.getJSON("data.json")


var sys = arbor.ParticleSystem()
sys.parameters({stiffness:900, repulsion:2000, gravity:true, dt:0.015})
sys.renderer = Renderer("#sitemap")
sys.graft(theUI)
var nav = Nav("#nav")
$(sys.renderer).bind('navigate', nav.navigate)
$(nav).bind('mode', sys.renderer.switchMode)
nav.init()
})

jsonの取得と読み取りを行いますが、プログラムは機能しません。

ファイル data.json は次のとおりです。

{
"nodes":{"progetto 1":{"color":"red", "shape":"dot", "alpha":1},
"demos":{"color":"#b2b19d", shape:"dot", "alpha":1},
"halfviz":{"color":"#a7af00", "alpha":0, "link":""},
"atlas":{"color":"#a7af00", "alpha":0, "link":""},
"echolalia":{"color":"#a7af00", "alpha":0, "link":""},
"docs":{"color":"#b2b19d", "shape":"dot", "alpha":1},
"reference":{"color":"#922E00", "alpha":0, "link":""},
"introduction":{"color":"#922E00", "alpha":0, "link":""},
"code":{"color":"#b2b19d", "shape":"dot", "alpha":1},
"github":{"color":"orange", "alpha":0, "link":""},
".zip":{"color":"orange", "alpha":0, "link":""},
".tar.gz":{"color":"orange", "alpha":0, "link":""}
},
"edges":{
"progetto 1":{
"demos":{"length":.8},
"docs":{"length":.8},
"code":{"length":.8}
},
"demos":{"halfviz":{},
"atlas":{},
"echolalia":{}
},
"docs":{"reference":{},
"introduction":{}
},
"code":{".zip":{},
".tar.gz":{},
"github":{}
}
}
}
4

2 に答える 2

3

JSON に構文エラーがあるため:

SyntaxError: test.json: Unexpected token s

二行目:

"demos":{"color":"#b2b19d", shape:"dot", "alpha":1},

shape引用する必要があります。

JSON では、有効な JSON を作成するために、すべてのキーと文字列値を二重引用符で囲む必要があることに注意してください。

編集:私は今、コンパイラのように感じます. :D

次の構文エラーがあるためです。

SyntaxError: test.json: Unexpected token .

この 2 回は次の行にあります。

"demos":{"length":.8},
"docs":{"length":.8},
"code":{"length":.8}

.8は有効な値の JSON ではありません。使用する0.8

これで完了です。準備は完了です。

于 2013-05-18T20:15:09.323 に答える
1

このようなコールバック関数を使用する必要があります-

$.getJSON("data.json", function (theUI) {
    var sys = arbor.ParticleSystem();
    sys.parameters({
        stiffness: 900,
        repulsion: 2000,
        gravity: true,
        dt: 0.015
    });
    sys.renderer = Renderer("#sitemap");
    sys.graft(theUI);
    var nav = Nav("#nav");
    $(sys.renderer).bind('navigate', nav.navigate);
    $(nav).bind('mode', sys.renderer.switchMode);
    nav.init();
});

また、

jsonlint テスト : http://jsonlint.com/

Parse error on line 9:
...2b19d",            shape: "dot",      
----------------------^
Expecting 'STRING'
于 2013-05-18T20:15:20.920 に答える