2011-06-28 56 views
0

我被困在這個話題上已經2天了,而且似乎找不到我需要的東西。自定義解串器GSON


我有一個類如下:

public class myClass { 

private String name; 
private ArrayList<String> arr1; 
private ArrayList<String> arr2; 
} 

我通過jQuery AJAX發佈JSON到後來需要填補myClass相關聯進行進一步的處理數組列表的JSP文件。

的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); 

感謝任何人誰可以提供幫助。

更新:對不起,我忘了清楚說明我在問什麼。

我有2個相關的問題:

1.我需要使用解串器嗎?
2.如果是,那我現在有什麼問題?

回答

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

這不是你想要達到的目標嗎?你確定從request.getParameter("myStuff")收到的json的值是你說的嗎?

+0

謝謝。我認爲這是因爲我忘記了java.lang.reflect.Type,但我不確定,因爲我重新輸入了它。它現在有效。 – richsoni