2014-01-29 1 views
0

저는 배우고 있었고 마침내 제가 생각한이 작은 "프로젝트"의 끝 부분에 있다고 생각합니다. 비슷한 주제를 보았지만 필요에 맞게 코드를 수정할 수는 없습니다.특정 문자열에 대한 JSON 내용을 확인하십시오.

제대로 표시되는 JSON 출력이 있으며 특정 값을 검색하여 표에 붙여 넣기 만하면됩니다.

XML 데이터를 가져 와서 테이블에 붙여 넣는 다음 Javascript가 있습니다.

자바 스크립트

var html = '<table id="myTable"><thead><tr><th>Entry</th>'; 
    for (row = 0; row < jsondata.rowCount; row++) 
    { 
     html += "<tr><td>" + (row+1) + "</td>"; 
     for (column = 0; column < jsondata.columnCount; column++) 
     { 
      if((jsondata.xmlData [ row ] [ column ]) == "Ninja") 
      { 
       html += "<td>" + jsondata.xmlData [ row ] [ column ] + "</td>" 
      } 

      alert(jsondata.xmlData [ row ] [ column ]); //Added in edit - "undefined" 
     } 
     html += "</tbody></table>"; 
     $("#tablearea").html(html); 
    } 

편집 : JSON

"xmlData" : [ [ "Ninja", "Blue"], [ "Car", "Red"] ] 

나는 제외하면이 모든하지만, 붙여 넣기합니다 문 경우 (경고 테스트 할 때) undefined을 명시합니다.

+1

json 데이터를 공유 할 수 있습니까? 아니면 더 나은, 당신은 바이올린을 만들 수 있습니까? – Beterraba

+0

json 배열을 foreach 또는 looping하여 값과 일치 시키려고 했습니까? – Jack

+0

경고를 어디에 두시겠습니까? 코드에 표시하십시오. – rednaw

답변

0

EDIT (보다 간결) 직접 검사 배열의 길이를 검색하는 게 좋을 것 실제 행 수 배열의 .length 속성을 사용하거나 (주어진 객체에서) 다음을 수행 할 수 있습니다.

var jsondata = { 
    rowCount: 3, 
    columnCount: 2, 
    xmlData: [["Ninja", "Blue"], ["Car", "Red"]] 
}; 

var html = '<table id="myTable">' + 
      '<thead>' + 
      '<tr><th>Entry</th><tr>'; 
html += "<tbody>"; 
for (row = 0; row < jsondata.rowCount; row++) { 
    var showRow = false; 
    var tempHtml = "<tr>"; 
    for (column = 0; column < jsondata.columnCount; column++) { 
     if (jsondata.xmlData[row]) { 
      tempHtml += "<td>" + jsondata.xmlData[row][column] + "</td>"; 
      showRow = (jsondata.xmlData[row][column] == "Ninja") || showRow; 
     } 
    } 
    tempHtml += "</tr>"; 
    if (showRow) { 
     html += tempHtml; 
    } 
} 
html += "</tbody></table>"; 
$("#tablearea").html(html); 
+0

이것은 완벽하게 작동합니다. 그러나 외부 JSON 파일로 작업 할 때 충돌이 발생합니다! 하지만 최선을 다해 혼자서 알아 내려고 노력합니다! 고맙습니다! – user2261755

0

배열의 실제 길이와 일치하는 rowCount 및/또는 columCount가있는 것 같습니다. 나는 당신의 문제가 당신의 행 개수 회원이 일치하지 않음을 믿습니다

:

어쨌든 나는

var html = '<table id="myTable"><thead><tr><th>Entry</th>'; 
for (row = 0; row < jsondata.xmlData.length; row++) 
{ 
    html += "<tr><td>" + (row+1) + "</td>"; 
    for (column = 0; column < jsondata.xmlData[row].length; column++) 
    { 
     if((jsondata.xmlData [ row ] [ column ]) == "Ninja") 
     { 
      html += "<td>" + jsondata.xmlData [ row ] [ column ] + "</td>" 
     } 

    } 
    html += "</tbody></table>"; 
    $("#tablearea").html(html); 
} 
관련 문제