2016-06-28 10 views
1

내 coldfusion 구성 요소가 JSON 형식 데이터를 반환하고 있습니다. Javascript를 사용하여 프런트 엔드에서 해당 데이터의 값에 액세스하려고합니다. 누군가가 "id", "firs_name"및 "last_name"과 같은 데이터 값에 액세스하는 방법을 이해할 수 있습니까?JSON 구조에서 데이터 가져 오기

나는 followData를 tempData라는 변수에 저장합니다. 나는 당신의 응답이 이미 구문 분석되지 않은 가정입니다

$.ajax({ 
    type: "get", 
    url: "GROUPSLIST.cfc", 
    data: { 
     method: "getNames", 
     queryString: selectQuery 
    }, 
    success: function(a) { 
     alert(a); 
    }, 
    error: function(a) { 
     alert(a.responseText); 
    } 
});  
+0

"Parse JSON" "Access JSON"...과 같은 항목을 찾으셨습니까? 예를 들어 관련 칼럼 (이 질문 옆에 있음)에는 다음과 같은 것들이 있습니다. http://stackoverflow.com/questions/4935632/parse-json-in-javascript?rq=1 – yuriy636

+0

질문에 JSON이있는 것처럼 보입니다. SerializeJSON (yourQuery) 호출에서. 그럴까요? 그렇다면 CF11을 사용하고 있다면 더 친숙한 JSON 세트를 반환하는 SerializeJSON (yourQuery, "struct")을 사용할 수 있습니다. – snackboy

+0

저는 8이나 9를 사용하고 있다고 생각합니다. 또한 Access Json 검색을 시도했으며 많은 사람들이 tempData [0] .id를 사용하려고합니다. 이것은 나를 위해 작동하지 않습니다. 나는 JSON과 coldfusion을 처음 사용한다. – user2997109

답변

3

:

{ "COLUMNS" : [ "id", 
     "FIRST_NAME", 
     "LAST_NAME" 
    ], 
    "DATA" : [ [ "xxxx", 
     "Jes", 
     "Abr" 
     ], 
     [ "xxx2", 
     "JESSIE", 
     "YU" 
     ] 
    ] 
} 

아래는 내 아약스 호출입니다 : 아래는 내가 점점 오전 JSON 구조이다. 다음과 같은 것을 사용할 수 있습니다.

var tempData = '{"COLUMNS":["id","FIRST_NAME","LAST_NAME"],"DATA":[["xxxx","Jes","Abr"],["xxx2","JESSIE","YU"]]}'; 
 
//parse response if not already parsed 
 
var respObj = JSON.parse(tempData); 
 
var columns = respObj['COLUMNS']; 
 
//create a column map to index like following 
 
var colMap = {}; 
 
for(i = 0; i < columns.length; i++){ 
 
    colMap[columns[i]] = i; 
 
} 
 
console.log(colMap) 
 
var data = respObj['DATA']; 
 
var text = '' 
 
//use data[i][colMap['id']] to access data inside loop. 
 
for(i = 0; i < data.length; i++){ 
 
    text += data[i][colMap['id']] + ':' +data[i][colMap['FIRST_NAME']] + ' ' + data[i][colMap['LAST_NAME']] + '<br>'; 
 
} 
 
document.getElementById('text').innerHTML = text;
<div id="text"></div>

+0

코드를 제공해 주셔서 감사합니다. 이 작품! – user2997109

0

DB 쿼리 및 열을 기준으로 액세스를 사용하는 동안 이것은 또한 전체 도움이 될 수있다 (예 : employee_id입니다, EMPLOYEE_NAME를)

스텝 1

// return in serializeJSON format with true 
<cffunction name="employeelistJson" returntype="any" returnformat="JSON"> 
     <cfquery name="employeelist" datasource="yourdatasource"> 
      select * from employee 
     </cfquery> 
    <cfset setJson = #serializeJSON(employeelist,true)#> 
    <cfreturn setJson /> 
</cffunction> 

스텝 - 2 액세스 json 데이터를 이름으로

success: function(response) { 
    //must be in caps 
    alert(response.DATA['EMPLOYEEID']); 
    alert(response.DATA['EMPLOYEENAME']);        
    },