Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Gson-java解析json_Java_Json_Gson - Fatal编程技术网

用Gson-java解析json

用Gson-java解析json,java,json,gson,Java,Json,Gson,我在用Gson解析json时遇到问题。 这是我的密码: Gson gson = new GsonBuilder().create(); String json = gson.toJson(myMap.values()); MyClass clazz = gson.fromJson(json, MyClass.class); System.out.println(clazz.toString()); 但是我得到了下一个错误(我也尝试使用新的TypeToken,但错误是相同的): 如果您能给我提些

我在用Gson解析json时遇到问题。 这是我的密码:

Gson gson = new GsonBuilder().create();
String json = gson.toJson(myMap.values());
MyClass clazz = gson.fromJson(json, MyClass.class);
System.out.println(clazz.toString());
但是我得到了下一个错误(我也尝试使用新的TypeToken,但错误是相同的):

如果您能给我提些建议,我将不胜感激

public final class MyClass extends GenericJson {

  private String field1;
  private String field2;
  private java.util.List<AClass> field3; // has subfield1
//getters and setters
}

试着这样做:

MyClass:

import java.util.List;

public class MyClass {

    public List<Item> items;

    public static class Item{

        public List<innerData> MyClass_type_var1;
        public List<innerData> MyClass_type_var2;
        public List<innerData> MyClass_type_var3;

        public static class innerData{
            public String field1;
            public String field2;
            public List<String> field3;
        }       
    }   
}

MyClass cls = new Gson().fromJSon(json, MyClass.class);
import java.util.List;
公共类MyClass{
公共清单项目;
公共静态类项{
公共列表MyClass\u type\u var1;
公共列表MyClass\u type\u var2;
公共列表MyClass_type_var3;
公共静态类innerData{
公共字符串字段1;
公共字符串字段2;
公共列表字段3;
}       
}   
}
MyClass cls=new Gson().fromJSon(json,MyClass.class);
希望这将引导您走向正确的方向:-)

编辑:

试试这个

public class NewClass{
    public List<MyClass> items;
}

NewClass cls = new Gson().fromJSon(json, NewClass.class);
公共类NewClass{
公共清单项目;
}
NewClass cls=new Gson().fromJSon(json,NewClass.class);

尝试以下方法:

MyClass:

import java.util.List;

public class MyClass {

    public List<Item> items;

    public static class Item{

        public List<innerData> MyClass_type_var1;
        public List<innerData> MyClass_type_var2;
        public List<innerData> MyClass_type_var3;

        public static class innerData{
            public String field1;
            public String field2;
            public List<String> field3;
        }       
    }   
}

MyClass cls = new Gson().fromJSon(json, MyClass.class);
import java.util.List;
公共类MyClass{
公共清单项目;
公共静态类项{
公共列表MyClass\u type\u var1;
公共列表MyClass\u type\u var2;
公共列表MyClass_type_var3;
公共静态类innerData{
公共字符串字段1;
公共字符串字段2;
公共列表字段3;
}       
}   
}
MyClass cls=new Gson().fromJSon(json,MyClass.class);
希望这将引导您走向正确的方向:-)

编辑:

试试这个

public class NewClass{
    public List<MyClass> items;
}

NewClass cls = new Gson().fromJSon(json, NewClass.class);
公共类NewClass{
公共清单项目;
}
NewClass cls=new Gson().fromJSon(json,NewClass.class);

我曾尝试使用jackon,但没用。查看该问题的答案(使用我自己的解析器)。

我曾尝试使用jackon,但没有帮助。请参阅该问题的答案(使用我自己的解析器)。

您能在一行中发布json,以便我可以通过在线工具对其进行解析吗?我会给你做一个新的MyClass你能在一行中发布json,这样我就可以通过在线工具解析它了吗?我会为您创建一个新的MyClassi无法更改MyClass,因为我从第三方库使用它,但我可以生成我自己的。尽管如此,还是要感谢idea.com.google.gson.JsonParseException:需要数组但找到objecti无法更改MyClass,因为我从第三方库使用它,但我可以生成自己的。尽管如此,还是要感谢idea.com.google.gson.JsonParseException:需要数组,但找到了对象
public class NewClass{
    public List<MyClass> items;
}

NewClass cls = new Gson().fromJSon(json, NewClass.class);