Java 变量名中带有空格的JSON

Java 变量名中带有空格的JSON,java,parsing,gson,android,Java,Parsing,Gson,Android,我有一个JSON,变量名中有空格,如下所示: { "First Name":"John", "Last Name":"Smith" } 由于Java不允许在变量名中使用空格,我正在尝试查看Gson是否有将其解析为First_Name或FirstName之类的内容的规定,以便我可以在Java类中使用First_Name或FirstName作为变量名来表示此数据 有没有办法做到这一点,或者我需要制作JSON的本地副本,并通过JSON文件运行字符串解析器来重命名变量,然后将其传递

我有一个JSON,变量名中有空格,如下所示:

{
     "First Name":"John",
     "Last Name":"Smith"
}
由于Java不允许在变量名中使用空格,我正在尝试查看Gson是否有将其解析为First_NameFirstName之类的内容的规定,以便我可以在Java类中使用First_NameFirstName作为变量名来表示此数据

有没有办法做到这一点,或者我需要制作JSON的本地副本,并通过JSON文件运行字符串解析器来重命名变量,然后将其传递给Gson来完成其余的工作

有什么想法吗


注意:这个JSON是由我使用的第三方API发送的,不是我自己创建的。因此,虽然我希望能够告诉他们正确的命名约定,但我不想花时间在这方面:)

首先,在java代码中命名变量
firstName
,请参见


其次,要使用Gson更改字段名:这里有一个很棒的教程:

首先,在java代码中命名变量
firstName
,请参见


第二,使用Gson更改字段名:这里有一个很棒的教程:

您是否尝试过使用字段命名支持。我的第一个猜测是它应该使用名称()中的空格。像下面这样的方法应该可以奏效

尝试了下面的方法,效果很好(我不同意这个命名,但效果很好)


您是否尝试过使用字段命名支持。我的第一个猜测是它应该使用名称()中的空格。像下面这样的方法应该可以奏效

尝试了下面的方法,效果很好(我不同意这个命名,但效果很好)


你打算如何使用JSON键/标签来创建Java类?我的第一个想法是:使用
label.replaceAll(“[\u]”,”)
你打算如何使用JSON键/标签来创建Java类?我的第一个想法是:使用
label.replaceAll(“[\u]”,”)
感谢Ramachandran的成功!使用SerializedName注释有效。我在尝试创建自定义FieldNamingSupport时挂断了电话,但这只是反向过程所需的,即从Java对象创建JSON。感谢Ramachandran成功!使用SerializedName注释有效。我在尝试创建自定义FieldNamingSupport时挂断了电话,但这只是在反向过程中需要的,即用Java对象创建JSON。
import com.google.gson.Gson;

public class SOMain {
    public static void main(String[] args) throws Exception{

        Gson gson = new Gson();
        String json = "{\"First Name\":\"John\",\"Last Name\":\"Smith\"}";

        Employee employee = gson.fromJson(json, Employee.class);

        System.out.println(employee);

    }

}


import com.google.gson.annotations.SerializedName;
public class Employee {

    @SerializedName("Last Name")
    public String lastName;
    @SerializedName("First Name")
    public String firstName;

    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    public String getFirstName() {
        return firstName;
    }
    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    @Override
    public String toString() {
        // TODO Auto-generated method stub
        return "Employee with first name " + firstName + " and last name " + lastName ;
    }

}