Json 自定义反序列化器GSON
我已经被这个话题难住两天了,似乎找不到我需要的东西Json 自定义反序列化器GSON,json,jsp,gson,deserialization,Json,Jsp,Gson,Deserialization,我已经被这个话题难住两天了,似乎找不到我需要的东西 我的课程如下: public class myClass { private String name; private ArrayList<String> arr1; private ArrayList<String> arr2; } 我试图创建一个自定义反序列化程序,但我所有的尝试都是徒劳的这是我当前的功能: json = request.getParameter("myStuff"); Gs
我的课程如下:
public class myClass {
private String name;
private ArrayList<String> arr1;
private ArrayList<String> arr2;
}
我试图创建一个自定义反序列化程序,但我所有的尝试都是徒劳的这是我当前的功能:
json = request.getParameter("myStuff");
Gson gson = new Gson();
Type listType = new TypeToken<ArrayList<myClass>>() {}.getType();
ArrayList<myClass> myClassList= new Gson().fromJson(json, listType);
json=request.getParameter(“myStuff”);
Gson Gson=新的Gson();
类型listType=newTypeToken(){}.getType();
ArrayList myClassList=new Gson().fromJson(json,listType);
谢谢所有能帮忙的人
更新:对不起,我忘了清楚地说明我在问什么
我有两个相关的问题:
1。我需要使用反序列化程序吗?
2。如果是,我现在的代码有什么问题?您发布的代码和JSON按照我的预期进行了序列化和反序列化,没有任何自定义反序列化。我看不出有什么不对劲
import java.io.FileReader;
import java.lang.reflect.Type;
import java.util.ArrayList;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class Foo
{
public static void main(String[] args) throws Exception
{
Type listType = new TypeToken<ArrayList<myClass>>() {}.getType();
Gson gson = new Gson();
ArrayList<myClass> myClassList= new Gson().fromJson(new FileReader("input.json"), listType);
System.out.println(gson.toJson(myClassList));
}
}
class myClass
{
private String name;
private ArrayList<String> arr1;
private ArrayList<String> arr2;
}
导入java.io.FileReader;
导入java.lang.reflect.Type;
导入java.util.ArrayList;
导入com.google.gson.gson;
导入com.google.gson.reflect.TypeToken;
公开课Foo
{
公共静态void main(字符串[]args)引发异常
{
类型listType=newTypeToken(){}.getType();
Gson Gson=新的Gson();
ArrayList myClassList=new Gson().fromJson(new FileReader(“input.json”),listType);
System.out.println(gson.toJson(myClassList));
}
}
类myClass
{
私有字符串名称;
私人ArrayList arr1;
私人ArrayList arr2;
}
这不是你想要达到的吗?您确定从
request.getParameter(“myStuff”)
收到的json
的值与您所说的相同吗?谢谢。我想这是因为我忘记了java.lang.reflect.Type,但我不确定,因为我重新键入了它。现在可以了。
import java.io.FileReader;
import java.lang.reflect.Type;
import java.util.ArrayList;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
public class Foo
{
public static void main(String[] args) throws Exception
{
Type listType = new TypeToken<ArrayList<myClass>>() {}.getType();
Gson gson = new Gson();
ArrayList<myClass> myClassList= new Gson().fromJson(new FileReader("input.json"), listType);
System.out.println(gson.toJson(myClassList));
}
}
class myClass
{
private String name;
private ArrayList<String> arr1;
private ArrayList<String> arr2;
}