2012-07-03 5 views
0

socket.io와 함께 첫 번째 node.js 프로그램을 만들려고하고 있는데 채팅 기록을 저장하고 싶습니다. 사용자가 채팅 기록을 자신의 브라우저에 푸시하면됩니다. 나는 채팅을 저장하고 밀고 전송되는 JSON은 다음과 같습니다 있습니다이 json을 jquery와 구문 분석하는 방법은 무엇입니까?

내 HTML 페이지에서
[ 
    [ 
     { 
      "username": "Warren2", 
      "text": "Test" 
     }, 
     { 
      "username": "Warren2", 
      "text": "Test2" 
     }, 
     { 
      "username": "Warren2", 
      "text": "Test3" 
     } 
    ] 
] 

나는 내가 거기 것이다 넣어이

socket.on('updatehistory', function(data) { 

} 

코드를 가지고 자바 스크립트를 updatehistory 메시지가 푸시 될 때 실행될 수 있습니다. 나는 n00b이고 꽤 잃어버린 롤입니다. 이것은 내가 뭘하려 :

socket.on('updatehistory', function (data) { 
    $.each(json.results, function(username,text){ 
     $('#conversation').append('<b>'+ username + ':</b> ' + text + '<br>'); 
    }); 
}); 

debug - websocket writing 5:::{"name":"updatehistory","args":[[{"username":"W 
arren2","text":"Test"},{"username":"Warren2","text":"Test2"},{"username":"Warren 
2","text":"Test3"}]]} 

누군가가 나에게 그 (jQuery로 바람직를) 구문 분석하는 방법을 알아내는 데 도움이 할 수 Node.js를에서 updatehistory 이벤트에 대한 정확한 디버그 메시지입니다. 감사합니다 : D 나는이 솔루션을 사랑

+0

다음과 같이 smtt와 같이 Jquery 플러그인을 사용할 수 있습니다. http://code.google.com/p/jquery-json/ – avasin

+0

또는 거기에 보이는 플러그인은 다음과 같습니다. http : // www.jquery4u.com/json/15-jquery-json-plugins/ – avasin

+0

모든 기능을 수행 한 후에 데이터를 가져 옵니까? –

답변

0
+0

나는 "JSON.parse : unexpected character"를 얻는다. 내 문제를 일으키는 모든 것을 둘러싼 괄호가 추가적으로 있다고 생각한다. 그걸 어떻게 다룰 지 모르겠습니다. – 0xDECAFBAD

+0

다른 도구 (빠른 테스트를 위해 가까이있는 PHP/perl/기타 도구)로 JSON을 시험해보십시오. 어쩌면 JSON이 유효하지 않을까요? 나는 많은 웹 사이트에서이 라이브러리를 사용 해왔다. 그런 오류가 발생하지 않았다 .. – avasin

0

자신과 불과 5 선으로 모든 작업을 수행하려는 경우 내가 당신에게 당신의 데이터를 탐색 할 수있는 방법을 줄 것이다 code.Here가 간다를 첫 번째. 사용자 이름과 암호가 샘플에서 실제로 작동 함을 알리기 위해 사용자에게 경고했습니다.

$(document).ready(function(){ 
     var k=[ 
    [ 
     { 
      "username": "Warren1", 
      "text": "Test" 
     }, 
     { 
      "username": "Warren2", 
      "text": "Test2" 
     }, 
     { 
      "username": "Warren3", 
      "text": "Test3" 
     } 
    ] 
]; 

for(i in k) 
    { 
    var l=k[i]; 
    for (j in l) 
    { 
     alert("Username:"+l[j].username+" -- Message:"+l[j].text); 
    } 
    }​ 
    }); 

JSON.parse()$.parseJson

http://jsfiddle.net/shivkumarganesh/gfff5/

내가이 최적의 솔루션을 고려 working.So했다.

+0

여분의 괄호 세트는 어떻게 제거 할 수 있습니까? json은 node.js에서 가져온 것입니다. – 0xDECAFBAD

+0

node.js의 입력을 콘솔에 기록 할 때 [Object {username = "Warren2", text = "test1"}, Object {username = "Warren2" text = "test2"}, Object {username = "Warren2", text = "test3"}] – 0xDECAFBAD

+0

@ 0xDECAFBAD 문제를 해결했지만 코드를 편집 할 필요가 없습니다. 동일한 문자열을 직접 입력 할 수 있습니다. 위의 내 대답뿐만 아니라 바이올린 코드를 업데이트했습니다. 이것은 바이올린 링크 http://jsfiddle.net/shivkumarganesh/gfff5/입니다. –

관련 문제