2014-11-26 4 views
0

여기에 어떤 문제가 있는지 확인하려고합니다. 기본적으로 JSON 컨텐츠가 포함 된 파일을 backbone.js 컬렉션에로드하고 있습니다. 그것은 파일을 제대로 찾고, 내용을로드하고, 브라우저 개발자 도구를 통해 12 개의 JSON 객체 중 하나에 액세스 할 수 있지만 다른 11 개의 객체가 누락되어로드 된 객체가 표시되는 것을 볼 수 있습니다. '속성'으로 분류됩니다. 나는 다소 backbone.js과 나는 무엇을 잘못했는지 모르겠다. 코드 아래 스크린 샷 :JSON 파일의 백본 모델이 속성으로 표시됩니다.

{ 
"Command": { 
    "build": 1, 
    "TouchedBy": "corpUser1", 
    "TouchedWhenUTC": "2013-10-24 06:58:15.5130000 +00:00", 
    "CreatedBy": "corpUser1", 
    "CreatedWhenUTC": "2013-10-24 06:58:15.5130000 +00:00", 
    "Active": "TRUE", 
    "MSRowversion": "", 
    "id": 1, 
    "Name": "Start Services", 
    "Description": "To start all Services", 
    "Type": 1, 
    "Data": "" 
}, 
"Command": { 
    "build": 1, 
    "TouchedBy": "corpUser1", 
    "TouchedWhenUTC": "2013-10-24 06:58:15.5170000 +00:00", 
    "CreatedBy": "corpUser1", 
    "CreatedWhenUTC": "2013-10-24 06:58:15.5170000 +00:00", 
    "Active": "TRUE", 
    "MSRowversion": "", 
    "id": 2, 
    "Name": "Stop Services", 
    "Description": "To stop all Services", 
    "Type": 2, 
    "Data": "" 
}, 
[9 other JSON objects (commands) - formatted exactly the same way...], 
"Command": { 
    "build": 1, 
    "TouchedBy": "corpUser2", 
    "TouchedWhenUTC": "2014-10-30 08:48:37.0770000 +00:00", 
    "CreatedBy": "corpUser2", 
    "CreatedWhenUTC": "2014-10-30 08:48:37.0770000 +00:00", 
    "Active": "TRUE", 
    "MSRowversion": "", 
    "id": 28, 
    "Name": "Stop Services T", 
    "Description": "To stop all Services for T", 
    "Type": 2, 
    "Data": "" 
} 
} 
:

여기
var cmd = Backbone.Model.extend({}); 
var cmdList = Backbone.Collection.extend({ 
    model: cmd 
}); 
var myCmds = new cmdList(); 

myCmds.fetch({ 
    add: true, 
    url: "CustomFiles/Commands.txt", 
    success: function() { 
     console.log("JSON file load was successful", myCmds); 
     $.each(myCmds, function (key, value) { 
      console.log(key + ": " + value.Description); 
     }); 
    }, 
    error: function() { 
     console.log("There was some error in loading and processing the JSON file"); 
    } 
}); 

는 JSON 내용을 포함하는 Commands.txt 파일의 축약 버전입니다 : 내가 파일에서 JSON 컨텐츠를로드하는 데 사용하고

코드

내 JSON 콘텐츠가 정확하지만 개발자 도구의 스크린 샷에서 볼 수 있듯이로드 중입니다. 그러나 모든 개체가로드되지 않아 '설명'값에 액세스 할 수 없습니다. 'Command'객체의 속성. 다음 화면에서

Unable to access 'Description' attribute of the 'Command' object

, 당신은 단지 하나의 명령을로드하고이 속성으로 식별되는 것을 볼 수 있습니다. 내가 과도하게 분석/지나치게 복잡하게 만들었습니까? 아니면 제가 간과하고있는 간단한 것이 있습니까?

'Command' object loaded as an attribute and missing the other 11 objects

내가 제대로로드하고 이러한 JSON 객체를 반복하기 위해 무엇을 할 수 있는가?


는 UPDATE : 객체가 배열의 일부가 될 수 있도록 "명령"키 개폐 브래킷을 더 이상 현재와 변경했다 없도록

은 내가 Commands.txt 파일을 수정 . 그래서, 나는이에서 갔다 : 이것에

{ 
    "Command": { 
     "build": 1, 
     "TouchedBy": "corpUser1", 
     "TouchedWhenUTC": "2013-10-24 06:58:15.5130000 +00:00", 
     "CreatedBy": "corpUser1", 
     "CreatedWhenUTC": "2013-10-24 06:58:15.5130000 +00:00", 
     "Active": "TRUE", 
     "MSRowversion": "", 
     "id": 1, 
     "Name": "Start Services", 
     "Description": "To start all Services", 
     "Type": 1, 
     "Data": "" 
    }, 
    "Command": { 
     "build": 1, 
     "TouchedBy": "corpUser1", 
     "TouchedWhenUTC": "2013-10-24 06:58:15.5170000 +00:00", 
     "CreatedBy": "corpUser1", 
     "CreatedWhenUTC": "2013-10-24 06:58:15.5170000 +00:00", 
     "Active": "TRUE", 
     "MSRowversion": "", 
     "id": 2, 
     "Name": "Stop Services", 
     "Description": "To stop all Services", 
     "Type": 2, 
     "Data": "" 
    }, 
    [9 other JSON objects (commands) - formatted exactly the same way...], 
    "Command": { 
     "build": 1, 
     "TouchedBy": "corpUser2", 
     "TouchedWhenUTC": "2014-10-30 08:48:37.0770000 +00:00", 
     "CreatedBy": "corpUser2", 
     "CreatedWhenUTC": "2014-10-30 08:48:37.0770000 +00:00", 
     "Active": "TRUE", 
     "MSRowversion": "", 
     "id": 28, 
     "Name": "Stop Services T", 
     "Description": "To stop all Services for T", 
     "Type": 2, 
     "Data": "" 
    } 
} 

을 : 내 문제의 대부분을 고정

[{ 
    "build": 1, 
    "TouchedBy": "corpUser1", 
    "TouchedWhenUTC": "2013-10-24 06:58:15.5130000 +00:00", 
    "CreatedBy": "corpUser1", 
    "CreatedWhenUTC": "2013-10-24 06:58:15.5130000 +00:00", 
    "Active": "TRUE", 
    "MSRowversion": "", 
    "id": 1, 
    "Name": "Start Services", 
    "Description": "To start all Services", 
    "Type": 1, 
    "Data": "" 
}, 
{ 
    "build": 1, 
    "TouchedBy": "corpUser1", 
    "TouchedWhenUTC": "2013-10-24 06:58:15.5170000 +00:00", 
    "CreatedBy": "corpUser1", 
    "CreatedWhenUTC": "2013-10-24 06:58:15.5170000 +00:00", 
    "Active": "TRUE", 
    "MSRowversion": "", 
    "id": 2, 
    "Name": "Stop Services", 
    "Description": "To stop all Services", 
    "Type": 2, 
    "Data": "" 
}, 
[9 other JSON objects (commands) - formatted exactly the same way...], 
{ 
    "build": 1, 
    "TouchedBy": "corpUser2", 
    "TouchedWhenUTC": "2014-10-30 08:48:37.0770000 +00:00", 
    "CreatedBy": "corpUser2", 
    "CreatedWhenUTC": "2014-10-30 08:48:37.0770000 +00:00", 
    "Active": "TRUE", 
    "MSRowversion": "", 
    "id": 28, 
    "Name": "Stop Services T", 
    "Description": "To stop all Services for T", 
    "Type": 2, 
    "Data": "" 
}] 

. 명령의 속성 값 중 하나에 액세스하는 데 여전히 문제가 있지만 필요한 경우 해당 부분을 찾아서 새로운 질문으로 다시 돌아가는 작업을 수행합니다.

+0

JSON을 생성하기 위해'Commands.txt'를 생성 한 깨진 도구를 고쳐야합니다. 객체 배열이 적절할 것입니다. 그 중 하나 또는 자신의 파서를 작성합니다. –

+0

내 결론에 도달하지 않은 경우 귀하의 의견을 도왔을 게시 해 주셔서 감사합니다 (개체의 배열). 다른 사람들이 더 빨리 도착할 수 있도록 도와 줄 수 있습니다 ... – Byrdman

답변

0

개체 내에 동일한 이름의 세 개의 키 (Command)가 있습니다. 각 키는 하나의 중첩 된 객체 만로드되는 이유를 설명하는 마지막 키를 재정의합니다.

+0

내 문제의 약 95 %가 귀하의 답변으로 해결되었습니다. 필자는 XML을 더 잘 알고 있으며 최근에 JSON으로 전환하기 시작 했으므로 형식이 전혀 이상하지 않은 것처럼 보였습니다.하지만 내가 언급 한 내용을 인식했습니다. 나는 추가 피스를 수정하기 위해 내가 한 일을 자세히 설명하는 추가 컨텐트를 게시했다. – Byrdman

관련 문제