2016-08-30 4 views
2

это мой первый вопрос здесь, я стараюсь быть более явным :)Получить значение из JSON и поместить его в строки

Я хочу, чтобы получить значение из JSON страницы: https://api.dailymotion.com/video/x3p6d9r?fields=onair.

Я следую учебному пособию о json object.

Но я хочу получить значение "onair" и поместить его в String для использования IF STRING == "XX".

Это мой код:

public class notification extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_notification); 

     detectonline(); 

    } 

    public void detectonline(){ 
     /* 
     if (xx == "false") { 
      Do something is live is off 
     } 
     else{ 
      Do something is live is on 
     } 

     */ 

    } 

    public static boolean checkIfOnline(String channel) throws IOException { 
     String channerUrl = "https://api.dailymotion.com/video/x3p6d9r?fields=onair"; 

     String jsonText = readFromUrl(channerUrl);// reads text from URL 

     JsonParser parser = new JsonParser(); 
     JsonObject json = parser.parse(jsonText).getAsJsonObject(); 

     return !json.get("onair").isJsonNull(); 
    } 

    private static String readFromUrl(String url) throws IOException { 
     URL page = new URL(url); 
     StringBuilder sb = new StringBuilder(); 
     Scanner scanner = null; 
     try{ 
      //scanner = new Scanner(page.openStream(), StandardCharsets.UTF_8.name()); 
      scanner = new Scanner(page.openStream()); 
      while (scanner.hasNextLine()){ 
       sb.append(scanner.nextLine()); 
      } 
     }finally{ 
      if (scanner!=null) 
       scanner.close(); 
     } 
     return sb.toString(); 
    } 
} 

ответ

1

я переделать ваш метод согласно, что вы ищете, это один из несколько способа разбора JSON данные:

public static boolean checkIfOnline(String channel) throws JSONException, IOException { 
    String channerUrl = "https://api.dailymotion.com/video/x3p6d9r?fields=onair"; 

    String jsonText = readFromUrl(channerUrl);// reads text from URL 

    JSONObject json = new JSONObject(jsonText); // You create a json object from your string jsonText 
    if(json.has("onair")) { // just a simple test to check the node that you need existe 
     boolean value = json.getBoolean("onair"); // In the url that you gave onair value is boolean type 
     return value; 
    } 
    return false; 
} 
+0

Спасибо вам помочь, но у меня есть ошибки на 'Строка jsonText = readFromUrl (channelerUrl); // читает текст из URL'. У меня есть ошибка: 'Unhandled exception: java.io.IOexception' – PotatoesPower

+0

, а затем просто оберните оператор блоком catch catch – Manny265

+0

Измените метод следующим образом: public static boolean checkIfOnline (String channel) бросает JSONException, IOException – Seelass

0

Я создам METHODE используя свой путь!

public static boolean checkIfOnline(String channel) throws IOException { 
     String channerUrl = "https://api.dailymotion.com/video/x3p6d9r?fields=onair"; 

     String jsonText = readFromUrl(channerUrl);// reads text from URL 

     JsonParser parser = new JsonParser(); 


     String myString =json.get("onair"); 
return mystring;} 
Смежные вопросы