Project :
프로젝트 이름 : Practice
groupId : Practice
artifactId : Practice
version : 0.0.1-SNAPSHOT
Dependency :
1. groupId : org.json, artifactId : json, version : 20211205
2. groupId : com.squareup.okhttp3, artifactId : okhttp, version : 4.9.0
Task :
1. 첨부 파일의 Main.java 를 소스 폴더에 복사하고 실행하시오.
2. result 객체를 이용하여 BTC의 closing_price를 쉼표를 구분하여 소수 두 자리까지 출력하시오.
- 출력 형식은 String.format("%,.2f", BTC의 closing_price)을 이용하면 된다.
Report :
- 실행결과 스크린샷
import java.io.IOException;
import org.json.JSONObject;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;
public class Main {
public static void main(String[] args) throws IOException {
OkHttpClient client = new OkHttpClient();
// 아래 url은 가상화폐 거래소 빗썸의 전체 코인 현재가 정보를 담고있다.
Request request = new Request.Builder().url("https://api.bithumb.com/public/ticker/ALL_KRW").get()
.addHeader("Accept", "application/json").build();
// Request 객체의 url의 정보를 불러온다.
Response response = client.newCall(request).execute();
// response.body().string()으로 데이터를 조회한다.
JSONObject result = new JSONObject(response.body().string());
// Status를 출력한다.
System.out.printf("status:%s\n", result.getString("status"));
// Data를 JSON 형식으로 출력한다.
System.out.println(result.getJSONObject("data").toString(4));
// Set을 출력한다.
System.out.println(result.getJSONObject("data").keySet());
// 파싱
// result에서의 getJSONObject를 사용해 data 객체를 얻어온다.
JSONObject data = result.getJSONObject("data");
// data에서의 BTC 객체를 얻어온다.
JSONObject BTC = data.getJSONObject("BTC");
// getString을 사용해 BTC에서의 key : closing_price의 value 값을 얻어온다.
// 객체가 아니다.
String str = BTC.getString("closing_price");
// 문자열을 실수형으로 변환
// Task2. 출력
float f_Val = new Float(str);
System.out.println(String.format("closing_price:%,.2f\n", f_Val));
//BTC와 ETH를 비교하는 기능을 만들고자 함
//BTC 안의 key 값들 출력
/*
System.out.println(BTC.keySet());
JSONObject ETH = data.getJSONObject("ETH");
for(int i = 0; i<BTC.keySet().size(); i++)
{
}
*/
//실수로 바꾸지 않고 문자열 그대로 출력
//System.out.printf("closing_price:%s\n", BTC.getString("closing_price"));
}
}