我已经被这个话题困扰了2天了,似乎无法找到我需要的东西。
我有一个课程如下:
public class myClass {
private String name;
private ArrayList<String> arr1;
private ArrayList<String> arr2;
}
我通过jQuery ajax将json发布到一个jsp文件,该文件需要填充myClass的数组列表以便稍后进一步处理。
JSON看起来像这样:
[{"name":"myName","arr1":["foo","bar","blahh"],"arr2":["foo","bar","blahh"]},
{"name":"myName2","arr1":["foo","bar","blahh"],"arr2":["foo","bar","blahh"]}]
我试图制作一个自定义反序列化程序,但我的所有尝试都是徒劳的。
这是我目前的职能:
json = request.getParameter("myStuff");
Gson gson = new Gson();
Type listType = new TypeToken<ArrayList<myClass>>() {}.getType();
ArrayList<myClass> myClassList= new Gson().fromJson(json, listType);
感谢任何可以提供帮助的人。
更新:对不起,我忘了清楚地说出我在问什么。
我有两个相关的问题:
1。我需要使用解串器吗?2。如果是的话,我现在的那个有什么问题?
答案 0 :(得分:1)
您发布的代码和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;
}
这不是你想要达到的目标吗?您确定从json
收到的request.getParameter("myStuff")
的价值是您所说的吗?