2013-11-20 3 views
5

मैं joint.js पुस्तकालय चाहते मेरी JSON पढ़ सकते हैं और एक चार्ट के रूप में यह प्रदर्शित करने के लिए ...संयुक्त.जेएस में जेएसओएन पढ़ना?

var paper = new joint.dia.Paper({ 
    el: $('#paper'), 
    width: 600, 
    height: 200, 
    model: graph 
}); 

var graph = new joint.dia.Graph; 

jsonstring = '{"employees": [ { "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"Jones" } ] }'; 

graph.fromJSON(JSON.parse(jsonstring)); 
+1

मैं एक 'fromJSON' विधि है कि JSON को स्वीकार नहीं करता है कि एक पुस्तकालय द्वारा intrigued रहा हूँ ... – lonesomeday

+1

वहाँ उस के लिए एक कारण है । Https://developer.mozilla.org/en-US/docs/JSON#toJSON()_method और दूसरी लाइब्रेरी का एक उदाहरण पढ़ें: http://backbonejs.org/#Model-toJSON। JSON.stringify ऑब्जेक्ट के toJSON() को कॉल करता है जो इसे पुनरावर्ती रूप से स्ट्रिंग करता है। toJSON() एक वस्तु को वापस करने के लिए माना जाता है, एक स्ट्रिंग नहीं। आज़माएं: JSON.stringify ({toJSON: function() {return {foo: 'bar'}}})। से जेएसओएन() विपरीत है और इसलिए एक वस्तु को स्वीकार करता है, स्ट्रिंग नहीं। – dave

उत्तर

4

joint.dia.Graph के लिए एपीआई से:

joint.dia.Graph मॉडल सभी पकड़े आरेख के कक्ष (तत्व और लिंक)। यह Backbone model है। सभी कोशिकाओं का संग्रह संपत्ति कोशिकाओं में संग्रहीत किया जाता है।

तो अपेक्षित JSON इस फ़ॉर्म में होना चाहिए: { cells: [] }। जहां cells दोनों तत्वों और लिंक की एक सरणी है। प्रत्येक तत्व प्रपत्र होना चाहिए:

{ 
    id: <string>, 
    type: '<type of shape>', 
    attrs: { <attrs> }, 
    position: { x: <int>, y: <int> }, 
    angle: <deg>, 
    size: { width: <int>, height: <int> }, 
    z: <int>, 
    ... and some other, maybe custom, data properties 
} 

संदर्भ: Using Server Data with JointJS

+2

बस यह जोड़कर कि आप आम तौर पर जेएसओएन को हाथ से नहीं बनाते हैं लेकिन ग्राफ के संयुक्त जेएस तत्वों और लिंक जोड़कर और फिर JSON.stringify (ग्राफ) के साथ ग्राफ को स्ट्रिंग करते हैं। – dave