Bithumb Api를 이용한 BTC closing_price

sun·2022년 6월 28일
0

Java_task

목록 보기
1/2

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 :
  1. 실행결과 스크린샷
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"));
	}
}

profile
World CHange

0개의 댓글