2016-06-14 7 views
-1

HTML 양식을 JSON 개체로 변환하려고합니다. 양식에는 기본적으로 Header 및 Detail의 두 섹션이 있습니다. 헤더 섹션에는 일부 HTML 입력 상자가 있으며 세부 구역은 테이블입니다. 내 양식의 더미보기는 다음과 같습니다.HTML 양식을 JSON 개체로 변환

<!DOCTYPE html> 
 
<html lang="en"> 
 
<body> 
 
\t <form id="MyForm" method="POST"> 
 
\t <div name="HeaderData"> 
 
\t \t <label id="lblFname">First Name:</label> 
 
\t \t <input type="text" name="fname"/> <br/> 
 
\t \t <label id="lblLname">Last Name:</label> 
 
\t \t <input type="text" name="lname" /> <br/> 
 
\t \t <label id="lblEmail">Email:</label> 
 
\t \t <input type="text" name="email" /> <br/> 
 
\t </div> 
 
\t <div id="DetailData"> 
 
\t \t <table cellspacing="0" align="Center" rules="all" border="1" id="MyTable" style="width:940px;border-collapse:collapse;"> 
 
\t \t \t </thead> \t \t 
 
\t \t \t \t \t <th scope="col">Code</th> 
 
\t \t \t \t \t <th scope="col">Name</th> 
 
\t \t \t \t \t <th scope="col">Continent</th> 
 
\t \t \t \t \t <th scope="col">Region</th> 
 
\t \t \t \t \t <th scope="col">Population</th> 
 
\t \t \t \t \t <th scope="col">Independence Year</th> 
 
\t \t \t </thead> 
 
\t \t \t <tbody> 
 
\t \t \t \t <tr> 
 
\t \t \t \t \t <td name="Code">Ind</td> 
 
\t \t \t \t \t <td name="Country">India</td> 
 
\t \t \t \t \t <td name="Continent">Asia</td> 
 
\t \t \t \t \t <td name="Region">Asia</td> 
 
\t \t \t \t \t <td name="Population">113Core</td> 
 
\t \t \t \t \t <td name="Independence">1947</td> 
 
\t \t \t \t </tr> 
 
\t \t \t \t <tr> 
 
\t \t \t \t \t <td name="Code">Ind</td> 
 
\t \t \t \t \t <td name="Country">India</td> 
 
\t \t \t \t \t <td name="Continent">Asia</td> 
 
\t \t \t \t \t <td name="Region">Asia</td> 
 
\t \t \t \t \t <td name="Population">1500000</td> 
 
\t \t \t \t \t <td name="Independence">1947</td> 
 
\t \t \t \t </tr> 
 
\t \t \t </tbody> 
 
\t \t </table> 
 
\t </div> 
 
</body> 
 
</form> 
 
</html>

나는 결과 JSON 객체가 모방 기대 :

{"HeaderData":[{"Fname":"XYZ","LName":"ABC","Email":"[email protected]"}], 
 
"DetailData":[{"Code":"Ind","Name":"India","Continent":"Asia","Region":"Asia","Population":"113 Crore","Independence Year":"1947"}], 
 
"DetailData":[{"Code":"Ind","Name":"India","Continent":"Asia","Region":"Asia","Population":"113 Crore","Independence Year":"1947"}] 
 
}

나는 jquery.tabletojson.js 같은 다른 라이브러리를 시도했지만 그들이있다 별도의 변수에 배열을 할당 할 수 없습니다.

나중에이 JSON 개체를 XML 문자열로 변환하여 SQL Server 쿼리에서 처리 할 수있게하려고합니다. 나는 XML 문자열 모방 기대 :

enter code here 
 
<Root> 
 
\t <HeaderData> 
 
\t \t <FName>XYZ</FName> 
 
\t \t <LName>XYZ</LName> 
 
\t \t <Email>[email protected]</Email> 
 
\t </HeaderData> 
 
\t <DetailData> 
 
\t \t <Code>Ind</Code> 
 
\t \t <Name>India</Name> 
 
\t \t <Continent>Asia</Continent> 
 
\t \t <Region>Asia</Region> 
 
\t \t <Population>113Crore</Population> 
 
\t \t <IndependenceYear>1947</IndependenceYear> 
 
\t </DetailData> 
 
\t <DetailData> 
 
\t \t <Code>Ind</Code> 
 
\t \t <Name>India</Name> 
 
\t \t <Continent>Asia</Continent> 
 
     <Region>Asia</Region> 
 
\t \t <Population>113Crore</Population> 
 
\t \t <IndependenceYear>1947</IndependenceYear> 
 
\t </DetailData> 
 
</Root>

내 현재 우선 순위는 JSON 문자열을 구축하고있다. JSON을 사용할 수있게되면 데이터를 XML로 변환 할 수 있습니다.

+1

json 예제는 의미가 없습니다. 같은 이름의 항목이 여러 개 있습니다. 그것은 json이 작동하는 방식이 아닙니다. –

+0

XML의 'DetailData' 노드가 부모 노드에 래핑되지 않아야합니까? ('DetailDatas' 또는 그와 유사한 것) – David

+0

JSON으로 질문을 제한하는 것이 좋습니다. JSON을 XML로 변환하려고한다는 사실은 실제 질문에 비해 지나치게 빠릅니다. 귀하의 질문은 읽기가 더 쉬울 것입니다. –

답변

0

모든 <td> '태그가 이름 속성이있는 경우에, 당신은 여기에

var poop = []; 
$("#MyTable").find("tr").each(function(){ 
    var fart = {}; 
    if(!$(this).find("td").length) return; 
    $(this).find("td").each(function(){ 
     fart[$(this).attr("name")]=$(this).text(); 
    }); 
    poop.push(fart); 
}); 

console.log(poop); 

가 작동 예입니다 ... jQuery를 몇 줄과 JSON 객체로 변환 할 수 있습니다 : fiddle.

+0

답변을 수정하려고 시도한 사람은 답을 수정하기 전에 질문을 읽어보십시오. 이 대답은 절대적으로 양식과 관련이 없습니다. –

+0

안녕하세요, Pootie, 제공하신 옵션을 사용해 보았습니다. 그러나 그것은 유익하지 못합니다. json 객체와 배열을 반환합니다. 하지만 변수 내에서 배열을 원한다. –

관련 문제