使用GSON将JSON转换为Java类

时间:2014-08-08 14:22:00

标签: java json gson deserialization

我在将JSON对象反序列化为Java Class对象时遇到一些问题,JSON对象包含许多无效字符,如" - "和","它不能是Java中的变量名 例如:

{
     "Sugar, Total": 100,
     "Vitamin-A": 50,
}

我还有一个私有变量类 例如:

public class Food {
    private int sugarTotal;
    private int vitaminA;

    //Getters and Setters
}

现在据我所知,GSON只填充100%匹配名称的变量,我无法在JSON对象中创建给我的名称。 有谁知道如何解决我的困境。

2 个答案:

答案 0 :(得分:0)

最简单的方法是使用@SerializedName('')让Gson知道映射数据的位置,如下所示:

public class Food {
    @SerializedName("Sugar, Total")
    private int sugarTotal;

    @SerializedName("Vitamin-A")
    private int vitaminA;
}

答案 1 :(得分:-1)

public class GSonFieldMapping
{
    public static void main(String[] args)
    {
        String s = "{\"Sugar, Total\": 100, \"Vitamin-A\": 50}";

        Gson gson = new Gson();

        Food food = gson.fromJson(s, Food.class);

        System.out.println(food);
    }

}

class Food
{
    @SerializedName(value = "Sugar, Total")
    private int sugarTotal;
    @SerializedName(value = "Vitamin-A")
    private int vitaminA;
    @Override
    public String toString()
    {
        return "Food [sugarTotal=" + sugarTotal + ", vitaminA=" + vitaminA + "]";
    }

    // Getters and Setters
}