2013-03-21 2 views
0

저는 Android 개발로 처음으로 놀고 있습니다. 간단한 통화 변환기 응용 프로그램을 만들려고합니다. 내가 작업하고있는 특정 부분은 모든 코드를 수동으로 코딩 할 필요없이 사용 가능한 모든 통화로 회 전자 상자를 채우는 것입니다. 다음과 같은 json 파일이 있습니다.
{
"AED": "United Arab Emirates Dirham",
"AFN": "Afghan Afghani",
"ALL": "Albanian Lek",
"AMD": "Armenian Dram",
"ANG": "Netherlands Antillean Guilder",
"AOA": "Angolan Kwanza",
"ARS": "Argentine Peso",
"AUD": "Australian Dollar",
"AWG": "Aruban Florin",
...
}
JSON 개체를 한 번에 하나씩 구문 분석합니다.

회 전자를 채우기 위해 한 번에 하나의 통화를 읽고 싶습니다.

/*PSEUDOCODE*/ 
spinner = (Spinner) findViewById(R.id.currencyTo); 
List<String> list = new ArrayList<String>(); 
JSONParser jParser = new JSONParser(); 
JSONObject json = jParser.getJSONFromUrl(url); 
while (rates != null) { 
rates = json.getString(first item in json); 
list.add(rates); 
... 

내가 등등 요금 = json.getString ("AED")와 같이 개별적으로 각 항목을 호출하여 작업을 수행하는 방법을 알고,하지만 난 너무 하드 코딩하지 않을 :의 라인을 따라 뭔가 그런 식으로. 개별적으로 각 통화 항목을 구문 분석 한 다음 회 전자에 배치하고 싶습니다. 다음 통화를 잡고 회 전자에 넣는 등의 작업을 수행하십시오. 어떤 도움이라도 대단히 감사합니다.

+0

이 http://stackoverflow.com/questions/9151619/java-iterate-over-jsonobject – gpasci

+0

는 또한 http://stackoverflow.com/a/4407731/321697 – kcoppock

+0

나는 생각한다 증분 JSON 파서가 있지만 JSON을 한 번에 모두 파싱하는 것이 거의 항상 좋습니다. 특히 "객체"(사전 /지도) 항목이 특정 순서로 보장되지 않으므로 각 액세스가 JSON을 처음부터 스캔해야합니다. –

답변

0

예, 모든 JSON 요소를 반복 할 수 있습니다.

이 시도 :

final JSONParser jParser = new JSONParser(); 
final JSONObject jObject = jParser.getJSONFromUrl(url); 
Iterator<?> keys = jObject.keys(); 

while(keys.hasNext()){ 
    final String key = (String)keys.next(); 
    final Object obj = jObject.get(key); 
    if(obj instanceof JSONObject){ 
     final String rate = jObject.getString(key); 
     System.out.println(key + " => " + rate); 
     list.add(rate); 
    } 
} 
+0

정답을 수락 (확인)해야한다는 것을 잊지 마십시오. –

관련 문제