从JSON获取值并将其放入字符串。

时间:2021-03-09 23:32:31

it's my first question here, i've try to be the more explicit :)

这是我的第一个问题,我试着更明确地问:

I want get value from a JSON page : https://api.dailymotion.com/video/x3p6d9r?fields=onair.

我想从JSON页面获取值:https://api.dailymotion.com/video/x3p6d9r?fields=onair。

I have follow a tutorial about json object.

我有一个关于json对象的教程。

But i want get the value "onair" and put this in a String for use a IF STRING == "XX".

但我想获取值“onair”并将其放入一个字符串中,用于IF字符串= "XX"。

This is my code :

这是我的代码:

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 个解决方案

#1


1  

I remake your method according what you are looking for it's one of several way to parse json data :

我根据您要查找的内容重新构建您的方法,这是解析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;
}

#2


0  

I will create methode using your way !

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

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

#1


1  

I remake your method according what you are looking for it's one of several way to parse json data :

我根据您要查找的内容重新构建您的方法,这是解析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;
}

#2


0  

I will create methode using your way !

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

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