从JSON获取值并将其放在String

时间:2016-08-30 15:16:35

标签: java android 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();
    }
}

2 个答案:

答案 0 :(得分: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;
}

答案 1 :(得分:0)

我会用你的方式创建方法!

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;}