안녕하세요 Android 프로그래머,이상한 JSON (논리) 오류?
내 응용 프로그램에서 웹 사이트를 구문 분석하고 있습니다. https://raw.github.com/currencybot/open-exchange-rates/master/latest.json
이 코드 세그먼트의 문제는 순서의 요금 을 받고되지 않는 것입니다 :
이
는 웹 사이트입니다. 그것은 ArrayList에 최초의 속도이기 때문에, (당신이 웹 사이트를 보면)가test.setText(currency_values.get(0).toString()); //test is a TextView
대답은 3.6733해야한다 :
private class DownloadWebPageTask extends AsyncTask<String, Void, ArrayList<Double>>
{
protected ArrayList<Double> doInBackground(String... urls)
{
ArrayList<Double> response = new ArrayList<Double>();
for (String url : urls)
{
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(url);
try
{
HttpResponse execute = client.execute(httpGet);
InputStream content = execute.getEntity().getContent();
InputStreamReader isr = new InputStreamReader(content);
StringBuilder sb = new StringBuilder();
char[] buffer = new char[1024];
while (isr.read(buffer) != -1)
{
sb.append(buffer);
}
JSONObject jobj = new JSONObject(sb.toString());
JSONObject ratesObj = jobj.getJSONObject("rates");
Iterator<String> keys = ratesObj.keys();
while (keys.hasNext())
{
response.add(Double.parseDouble(ratesObj.getString(keys.next())));
}
} catch (Exception e) {
e.printStackTrace();
}
}
return response;
}
@Override
protected void onPostExecute(ArrayList<Double> result)
{
currency_values = result;
}
이 클래스를 테스트하기 위해, 나는 다음 코드 줄을 사용 . 그러나 나중에 82.894997을 반환하는데 이는 JPY에서 찾을 수 있습니다.
왜 이런 일이 발생합니까? 누구든지이 문제를 해결할 수 있습니까?
그래서이 json 파일을 Android의 원시 폴더에 저장 한 다음 수정하여 편집하십시오. 왜냐하면 이건 내 아들이 아니야. 다른 사용자가 나를이 사이트로 이동 시켰습니다 :) – sameetandpotatoes
감사합니다. dmon을 업데이트 해 주셔서 감사합니다. JSON을 어떻게 업데이트합니까? – sameetandpotatoes
글쎄, 당신이 JSON을 제어한다고 가정했는데, 그렇지 않다면 정렬되지 않은 형식을 정렬 할 수있는 모델로 수동으로 변환해야 할 것입니다. – dmon