2013-03-26 6 views
-1

내가 JSON에 새로운 해요 다음과 같은 JSON 출력을 제공하는 자바 서블릿이 : 나는 상태로 그룹이 결과가 있어야합니다 중첩 된 JSON을 만들려면 자바 스크립트를 통해 JSON을 검색 한 후중첩 JSON 객체를 작성하는 방법은 무엇입니까?

{ 
    "35808": "Huntsville, Alabama", 
    "94203": "Sacramento, California", 
    "33054": "Miami, Florida", 
    "32801": "Orlando, Florida", 
    "30301": "Atlanta, Georgia", 
    "78717": "Austin, Texas" 
} 

를 :

{ 
    "A": { 
     "35808": "Huntsville, Alabama" 
    }, 
    "C": { 
     "94203": "Sacramento, California" 
    }, 
    "F": { 
     "33054": "Miami, Florida", 
     "32801": "Orlando, Florida" 
    }, 
    "G": { 
     "30301": "Atlanta, Georgia" 
    }, 
    "T": { 
     "78717": "Austin, Texas" 
    } 
} 

자바 스크립트를 사용하여이를 수행하는 가장 좋은 방법은 무엇이 있습니까? 또는 Java가 사용되는 경우 가장 좋은 방법은 무엇입니까?

감사합니다, 제이

+1

, 그것은 더 이상은 JSON 배열해야 JSON 객체입니다. – NewUser

+0

자바 스크립트를 사용하여 { "A", "C", "F", "G", "T"} 및 { "우편 번호": "도시"라는 문자를 저장하는 2 차원 배열을 만들려고했습니다. "state"}, JSON.stringify (배열) 함수를 사용하여 JSON 문자열을 얻지 못했습니다. –

답변

0

이 그것을 수행해야합니다

var parsedJSON = …; 
var byState = {}; 
for (var prop in parsedJSON) { 
    var address = parsedJSON[prop]; 
    var state = address.split(",")[1] || ""; 
    var stateKey = state.charAt(0); 
    if (! (stateKey in byState)) 
     byState[stateKey] = {}; 
    byState[stateKey][prop] = address; 
} 
console.log(JSON.stringify(byState, null, 4)); 
+0

내가 뭘하려고했는지, 감사합니다 :) –

0

이 상태가 분류되어 가정합니다. 하나 이상의`JSON` 객체를 넣어 http://jsfiddle.net/N23SL/

var originalJson = { 
    "35808": "Huntsville, Alabama", 
    "94203": "Sacramento, California", 
    "33054": "Miami, Florida", 
    "32801": "Orlando, Florida", 
    "30301": "Atlanta, Georgia", 
    "78717": "Austin, Texas" 
} 


var groupMe = function(originalJson) 
{ 
    var grouped = {}; 
    // loop over each property 
    for(var key in originalJson) 
    { 
     var value = originalJson[key]; 
     var state=value.split(", ")[1]; 
     var stateLetter = state[0]; 

     var letterGroup = grouped[stateLetter]; 
     if(typeof letterGroup === 'undefined') 
     { 
      letterGroup = {}; 
      grouped[stateLetter] = letterGroup; 
     } 

     letterGroup[key] = value; 
    } 

    return grouped; 

}; 

var groupedJson = groupMe(originalJson); 

console.log(groupedJson); 
관련 문제