2016-10-11 2 views
-2

В настоящее время я кодирую Java, используя Eclipse. Я пытаюсь получить значение ключа «высокий» с учетом данныхКак получить ключ от данных, взятых с веб-сайта API

{"high": "639.00000", "last": "634.94000", "timestamp": "1476220216", "bid": " «636.94000», «vwap»: «630.07099», «volume»: «7939.75947138», «low»: «613.83000», «ask»: «636.50000», «open»: «616.37000»}

, который я получаю с этого адреса: «https://www.bitstamp.net/api/v2/ticker/btcusd/»

до сих пор я получил этот код:

package JsonSimpleExample; 
import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.net.URL; 
import java.net.URLConnection; 
import org.json.simple.*; 



public class JsonSimpleExample { 

    public static void main(String[] args) throws IOException { 

     URL url = new URL("https://www.bitstamp.net/api/v2/ticker/btcusd/"); 

     URLConnection con = url.openConnection(); 
     InputStream is =con.getInputStream(); 


     BufferedReader br = new BufferedReader(new InputStreamReader(is)); 

     System.out.println(br.readLine()); 

    } 
} 

Возможное решение записать данные, которые я получаю от веб-сайта я в файл и введите каждый ключ, пара значений в хэш-карту и вызовите значение, но это кажется очень избыточным. Есть ли способ напрямую получить значение для ключа с данными, которые мне дает API?

+0

не уверены в апи, но вы можете прочитать объект JSON в одну строку, удалить скобки, расколоть вокруг запятой, а затем пройти через этот массив и разделить эти строки вокруг толстой кишки, чтобы получить ваши ключевые пары значений ? –

+0

эта ссылка может помочь вам https://www.mkyong.com/java/json-simple-example-read-and-write-json/ –

+1

@RAZ_Muh_Taz Пожалуйста, не просто прыгайте на нее с помощью простого сопоставления строк или регулярное выражение. Используйте анализатор JSON. Он поставляется с JDK. http://www.oracle.com/technetwork/articles/java/json-1973242.html – Robert

ответ

0

Простой вам также нужно добавить библиотеку json.

import java.io.IOException; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.Scanner; 
import org.json.JSONObject; 

/** 
* 
* @author BTACTC 
*/ 
public class JsonExample { 

    URL url; 
    String str; 
    Scanner scan; 
    JSON json; 

    public JsonExample() throws MalformedURLException, IOException { 

     url = new URL("https://www.bitstamp.net/api/v2/ticker/btcusd/"); 

     scan = new Scanner(url.openStream()); 

     str = new String(); 

     while (scan.hasNext()) { 
      str += scan.nextLine(); 
     } 

     System.out.println(str);// checking the data is now in string 

     JSONObject obj = new JSONObject(str); 
     System.out.println(obj.getString("high"));; 

    } 

    public static void main(String[] args) throws IOException { 

     JsonExample JE = new JsonExample(); 

    } 

} 
+0

Спасибо. Это сработало, за исключением того, что мне пришлось внести несколько изменений: –

+0

1. Я выбрал JSONExceptions как в методе, так и в основном. 2. Мне пришлось сменить JSON json на JSONML json После этого он отлично справился. –

Смежные вопросы