我在将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对象中创建给我的名称。 有谁知道如何解决我的困境。
答案 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
}