从类到主解析java中的JSON

从类到主解析java中的JSON,java,json,Java,Json,我有一个主类和一个普通的java类。一个将解析URL中的所有内容,另一个将全部打印出来。 我举的一个例子是它都在main和一个私有的静态void类中,但是当我想把它放到一个单独的类中时,我会在main或parse类中得到一个错误,这取决于我对构造函数的定义 这是主课 URL url = new URL("https://euw.api.pvp.net/api/lol/euw/v2.5/league/master?type=RANKED_FLEX_SR&api_key=RGAPI-fdf9

我有一个主类和一个普通的java类。一个将解析URL中的所有内容,另一个将全部打印出来。 我举的一个例子是它都在main和一个私有的静态void类中,但是当我想把它放到一个单独的类中时,我会在main或parse类中得到一个错误,这取决于我对构造函数的定义

这是主课

URL url = new URL("https://euw.api.pvp.net/api/lol/euw/v2.5/league/master?type=RANKED_FLEX_SR&api_key=RGAPI-fdf965a6-41b8-4fac-831a-f4aaeb133659");

    InputStream in = url.openStream();
    JsonReader reader = Json.createReader(in);

    myJsonParser json = new myJsonParser(reader.readObject());
这是另一节课。如果我把public void改为private void,我就不能在课外得到它

public void myJsonParser(JsonObject object)
{
    Set<String> fields = object.keySet();
            for( String st : fields){

                //Array
                JsonArray ja = null;
                //Object
                JsonObject jo = null;
                //String
                JsonValue jv = null;

                try{
                    ja = object.getJsonArray(st);
                }catch( ClassCastException ex1){
                    try{
                        jo = object.getJsonObject(st);
 ``                   }catch( ClassCastException ex2){
                        try{
                            jv = object.get(st);
                        }catch( ClassCastException ex3){
                            System.out.println("EXCEPTION");
                        }
                }
                }

                if(ja != null){
                    //System.out.println(st + " is a Array " + ja.toString());
                    for (int i = 0; i < ja.size(); i++) {
                        //Returns JSON objects
                        JsonObject object2 = ja.getJsonObject(i);
                        myJsonParser(object2);

                    }
                }else if(jo != null){
                    System.out.println(st + " is a Object " + jo.toString());


                }else if( jv != null){
                    System.out.println(st + " is a String " + jv.toString());
                }

            }                
} 
public void myJsonParser(JsonObject对象)
{
Set fields=object.keySet();
for(字符串st:字段){
//排列
JsonArray ja=null;
//反对
JsonObject jo=null;
//串
JsonValue jv=null;
试一试{
ja=object.getJsonArray(st);
}捕获(ClassCastException ex1){
试一试{
jo=object.getJsonObject(st);
``}catch(ClassCastException ex2){
试一试{
jv=object.get(st);
}捕获(ClassCastException ex3){
System.out.println(“例外”);
}
}
}
如果(ja!=null){
//println(st+“是一个数组”+ja.toString());
对于(int i=0;i
有什么方法可以让我进入课堂内外?我正在尝试让它工作,然后将它传输到JSP,或者甚至是一种方式,这样我就不必使用主类,因为我无论如何都要将它传输到JSP


编辑:我还需要使用返回类型,但当我尝试执行返回时,我也会得到一个错误

您应该使该方法返回一些内容,如果您想在类外使用它,则需要将其公开。打印与返回不同,但您的问题并不清楚您想要什么。您还需要了解类、方法和构造函数之间的区别。myJsonParser json=new myJsonParser(reader.readObject());主类中的这个错误告诉我构造函数中没有参数@你是对的是的