Таможенный десериализатор GSON - PullRequest
0 голосов
/ 28 июня 2011

Я зашла в тупик по этой теме уже 2 дня и, похоже, не могу найти то, что мне нужно.


У меня есть класс следующим образом:

public class myClass {

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

Я отправляю json через jQuery ajax в 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);

Спасибо всем, кто может помочь.

ОБНОВЛЕНИЕ: извините, я забыл четко указать, что я спрашиваю.

У меня есть 2 связанных вопроса:

1. Нужно ли использовать десериализатор?
2. Если да, что не так с тем, что у меня сейчас?

1 Ответ

1 голос
/ 28 июня 2011

Код и 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"), соответствует указанному?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...