2013-05-20 2 views
0

jsGrid를 통해 구문 분석 된 JSON 변수를 전달할 때 약간의 문제가 있습니다. MS Access .mdb 파일을 쿼리하고 있습니다. 문제는 MS Access의 자간 정수 필드 인 ID 필드가 쿼리 될 때 따옴표가 없다는 것입니다. jqGrid는이 점을 좋아하지 않으므로 테이블에 ID 값을 표시하지 않습니다.JSON 개체에서 누락 된 따옴표. 어떻게 추가 할 수 있습니까?

var SQL = "SELECT * FROM test"; 
var resultSet = myDB.query(SQL); 
// resultSet will yield [{"ID":1,"name":"albert","9999999999"},{"ID":2,"name":"peter","8888888888"}] 
var mydata = JSON.parse(resultSet) 

위의 notice resultSet은 ID 값에 따옴표가 없지만 나머지는 어떻게 수행합니까? 이로 인해 ID 열에 값이없는 테이블이 생성됩니다. JSON을 통해 파싱되기 전에 ID 값에 따옴표를 어떻게 추가합니까?

감사합니다.

enter image description here 전체 코드 .. enter image description here

+0

JSON 문자열 또는 JavaScript 데이터 구조를 가져오고 있습니까? –

+0

예, JSON 구조입니다.하지만 숫자와 정수는 따옴표가 없습니다. 값에 따옴표가 없으면 jqGrid는 표시되지 않습니다. –

+0

이것이 귀하의 질문에 답을하지 못한다는 것을 알고 있습니다. 그러나 JSON의 숫자는 따옴표로 묶을 수 없습니다. 그들이 있다면, 그들은 문자열입니다. –

답변

1

jqGrid는 문자열과 완전히 같은 정수로 작업 할 수 있습니다. 따라서 숫자를 문자열로 변경할 필요가 없습니다. 이전 질문에 게시 한 JSON에 ID 대신 id이 포함되어 있습니다. JavaScript는 대소 문자를 구별하는 언어입니다. 나는 당신이 comModel에서 index 속성을 제거하는

{name:'id', width:60, sortable:false}, 

는 또한 당신을 추천에

{name:'ID',index:'ID', width:60, sortable:false}, 

를 교체 할 경우 id 열에서 값을 볼 수 있다고 가정합니다.

+0

나는 그런 거짓말입니다! 이것을 지적 해 주셔서 고맙습니다! –

+0

@ like-a-trainee : 모두들 오류가 발생했습니다. 환영합니다! – Oleg

0
for (item in resultSet[0]){ 
    if (typeof(item) === "number"){ 
     item = " + item "; 
    } 
} 

안된 및 headcoded, 아마 작동합니다. 그건 총 쓰레기 였고 작동하지 못했습니다 ... item = " + item "; 라인은 유효한 자바 스크립트가 아니기 때문에 오류가 발생합니다.

resultSet[0].forEach(function(d){ 
    d.ID = '"' + d.ID + '"'; 
} 
+0

이 작동하지 않습니다 : ( –

+0

다른 방법으로 테스트 할 수 있습니다. 의도는 json 결과의 모든 개체를 반복하고 ID 값에 따옴표를 붙이는 것입니다. – xmashallax

+0

"개체가이 속성 또는 메서드를 지원하지 않습니다.":/ –