2013-01-02 4 views
0

저는 Java를 처음 접했고이 문제에 대해 곧바로 생각할 수 없습니다.json을 java에서 해시로 구문 분석

나는대로 JSON 개체가 포함 된 텍스트 파일이 있습니다

{"from":"1","to":["a","b"]} 

에 나는 해시 맵에서 이러한 파일을로드 할을 부분은 키와 "하는 것입니다"에서 "그래서 "부분은 값입니다. 나는 매우 어리석은 질문을하지만이 작업을 효율적으로 수행하는 방법에 대한 제안은 무엇입니까? 당신은 Jackson을 사용할 수 있습니다 감사

+1

여기에는 데이터 모델에 대한 질문이 있습니다. 왜 단지 {{ "1": [ "a", "b"]}'가 아닌가? 이는 합법적 인 JSON이며, 기존 프레임웍에 의해 처리하기가 훨씬 쉽다. – fge

+1

실제로 코드를 작성해야 할 수도 있습니다. 파머. –

+1

"효율적"에 대해 걱정하지 마십시오. "일하는 것"에 대한 걱정. 당신은 * 아무것도 없기 때문에!?! 다음 훨씬 더 나은 목표입니다. 내 첫 번째 접근 방식은 단지 POJO (이봐, 나는 계약서가 마음에 든다!)에 deserialize 한 다음 필요에 따라 조작 할 것이다. –

답변

3

:

// (1) deserialize JSON 
ObjectMapper mapper = new ObjectMapper(); // can reuse, share globally 
HashMap map = mapper.readValue(
    "{\"from\":\"1\",\"to\":[\"a\",\"b\"]}", HashMap.class); 

// (2) reorder stuff (use a new Map object if needed, or delete obsolete keys) 
map.put(map.get("from"), map.get("to")); 

출력은 다음과 같습니다

{to=[a, b], 1=[a, b], from=1} 

또는

{1=[a, b]} 

당신이 새로운지도 객체를 생성 할 경우 (2). 효율성 측면에서 무거운 파싱 부분은 Jackson이 담당합니다.

... 개발자를 위해 빠르고 정확하며 가볍고 인체 공학적 인 조합을 목표로합니다.

+1

어, 키와 값으로 각각 'from'과 'to'를 실제로 매핑합니까? – fge