Json出力形式で格納された各要素データを取得しようとしています。私は現在、次のJsonの出力から各要素のデータを取得します。
ロード個別にJSONデータ以下に示すように、インターフェイスが見えるJSON出力
function saveFlowchart(){
var node = [];
var matches = [];
var totalElementCount=0;
var searchEles = document.getElementById("container").children;
for(var i = 0; i < searchEles.length; i++)
{
matches.push(searchEles[i]);
var idOfEl = searchEles[i].id;
totalElementCount=idOfEl;
if(searchEles[i].id !=null || searchEles[i].id !="")
{
var $element = $("#" + searchEles[i].id);
var dropElem = $("#" + searchEles[i].id).attr('class');
var position = $element.position();
var elId = parseInt(idOfEl);
if (dropElem=="streamdrop ui-draggable")
{
position.bottom = position.top + $element.height();
position.right = position.left + $element.width();
node.push({
id: idOfEl,
class: dropElem,
position:
{
top: position.top,
left: position.left,
bottom: position.bottom,
right: position.right
}
});
for (var count = 0; count < 100; count++)
{
if (createdImportStreamArray[count][0] == idOfEl)
{
node.push({
predefinedStream: createdImportStreamArray[count][1],
//...Continued
var flowChart = {};
flowChart.elements =node;
var flowChartJson = JSON.stringify(flowChart);
$('#jsonOutput').val(flowChartJson);
}
を作成
function loadFlowchart() {
var flowChartJson = $('#jsonOutput').val();
var objFromJson = JSON.parse(flowChartJson);
var node = objFromJson.node;
$.each(node, function (index, element) {
var id = element.id;
var classes = element.class;
var positionTop = element.position.top
alert("Id of element parsed: " + id + "\nclass: " + classes
+ "\npositionTop: " + positionTop);
});
}
方法を試してみました。 Loadボタンをクリックすると、コードの最初の部分に示すようにloadFlowChart()
メソッドに従って、各要素、クラス、および最上位の位置を警告する必要があります。
Error: Uncaught TypeError: Cannot read property 'length' of undefined
私はJSON出力のノードをループしようとする際に間違ってやっていると、この点で任意のヘルプは高く評価されるかを知っていただきたいと思います。
これは何を返すのですか? 'var node = objFromJson.node; –
' saveFlowchart() 'メソッドで定義されているように、個々のデータを描画する必要があるオブジェクトをホストするJson出力内のノード配列を取得します。 –
データ? –