Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.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/8/magento/5.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
Json 自定义反序列化器GSON_Json_Jsp_Gson_Deserialization - Fatal编程技术网

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