Десериализация объектов с вложенными ArrayLists с помощью Gson?

1

Поэтому у меня возникают проблемы с десериализацией некоторого JSON, у которого вложенные ArrayLists, корневой элемент десериализуется, но вложенный внутри него ArrayList (Called mTest) имеет нулевое значение. Сначала это действительный JSON.

[
{
    "mRecipeName": "FirstRecipe",
    "mTest": [
        {
            "mIngredientName": "TestIngredient1",
            "mIngredientAmount": "1",
            "mUnit": "tbsp"
        },
        {
            "mIngredientName": "TestIngredient2",
            "mIngredientAmount": "2",
            "mUnit": "tbsp"
        }
    ],
    "mRecipeDescription": "Recipe1"
},
{
    "mRecipeName": "SecondRecipe",
    "mTest": [
        {
            "mIngredientName": "TestIngredient1",
            "mIngredientAmount": "1",
            "mUnit": "tbsp"
        },
        {
            "mIngredientName": "TestIngredient2",
            "mIngredientAmount": "2",
            "mUnit": "tbsp"
        }
    ],
    "mRecipeDescription": "Recipe2"
    }
]

Вот рецепт класса

public class Recipe {

    public String mRecipeName; //This values good
    public String mRecipeDescription; //This values good
    public ArrayList<Test> mTest; //This returns null
}

Вот тестовый класс

public class Test {

    public String mIngredientName;
    public float mIngredientAmount;
    public String mUnit;
}

И вот как я это называю

//Is there another way to do this? Or does this have to be done for every nested
//ArrayList? If so how?

Gson gson = new Gson();
        ArrayList<Recipe> result = gson.fromJson(json, new TypeToken<ArrayList<Recipe>>() {}.getType());

Большое спасибо заранее всем, кто отвечает!

Теги:
arraylist
gson
nested

1 ответ

0

Поэтому после еще одного часа разрывания волос я понял, что "Тест" исходит из рамки JUnit, а не моего собственного тестового класса, агония! Тем не менее, что привело меня к тому, чтобы сделать тест-класс в первую очередь, было то, что он не работал и, конечно же, таинственно сейчас.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню