2014-03-06 2 views
0

내 문제는 결과를 서식에 있음을 Node.js를 + postgis.In를 사용하여 나머지 API를 개발하고Node.js를 + API + JSON 형식

생각해 내 DB 모양 아래 같은 :

name  key   value 
xxxxxx  population 232 
xxxxxx  marginal 24 
yyyyyy  population 6372 
yyyyyy  marginal 566 

[{ 
name:xxxx 
key:population 
value:232 
key:marginal 
value:24 
}, 
{ 
name:yyyyy 
key:population 
value:6372 
key:marginal 
value:566 
}] 

나는 다음과 같은 쿼리를 실행하고 있습니다 :

SELECT name, key, value 
FROM map70 
WHERE key in ('population', 'marginal') 
GROUP BY 
     name, key, value 

나는 아래와 같은 출력을 원하는

하지만 난 아래와 같은 출력을 얻고있다 :

[{ 
name:xxxx 
key:population 
value:232 
}, 
{ 
name:xxxx 
key:marginal 
value:24 
}, 
{ 
name:yyyyy 
key:population 
value:6372 
}, 
{ 
name:yyyy 
key:marginal 
value:566 
} 
] 

어떻게 내가 내 사전에 this.Thanks를 해결 want..Help 출력을 할 수 있습니다.

답변

0

중복 키를 JSON에서 허용되지 않습니다, 그래서 무엇을 요구하는지하는 대부분의 JSON 파서에 의해 지원되지 않습니다.

하지만 당신은 당신이 원하는 것을 할 수있는 자신의 JSON 포매터를 작성할 수 있습니다.

1

당신은 당신이 원하는 출력을 가질 수 없습니다.

[{ 
name:xxxx 
key:population 
value:232 
key:marginal 
value:24 
}, 
{ 
name:yyyyy 
key:population 
value:6372 
key:marginal 
value:566 
}] 

자바 스크립트와 일반적으로 모든 해시 테이블에서 같은 이름의 키를 여러 개 가질 수 없습니다.

[{ 
"name":"xxxx", 
"population": 232, 
"marginal": 24 
}, 
{ 
"name":"yyyyy", 
"population": 6372, 
"marginal": 566 
}] 

또는 뭔가 같은 :

[{ 
"name":"xxxx", 
"keys": [ 
["population", 232], 
["marginal", 24] 
] 
}, 
{ 
"name":"yyyyy", 
"keys": [ 
    ["population", 6372], 
    ["marginal", 566] 
] 
}] 

가, 두 번째 출력을 얻을 이상의 모든 결과를 반복하는 당신이 원하는 무엇

이 같은 것입니다. 출력에 필요한 객체를 저장할 수있는 콜렉션이 필요합니다. 각 행에 대해 이미 작성된 오브젝트가 있는지 점검하십시오. 하나도 만들지 않으면 "키"배열에 하나가 추가됩니다.

obj.keys.push([current.key, current.value]); 

각 개체 처리가 끝나면 json 개체에서 json을 덤프 할 수 있어야합니다.

+0

귀중한 시간을위한 @ Loïc Faure-Lacroix 감사합니다. 두 번째 출력을 얻으려면 어떻게해야합니까? 출력을 얻으라고 안내합니다. – Subburaj

+0

알아 내기 쉽습니다. –

+0

나를 달성하시기 바랍니다 안내 .. 또한 내 테이블 형식을 변경하지 않고. – Subburaj