Java 变量名中带有空格的JSON
我有一个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文件运行字符串解析器来重命名变量,然后将其传递
{
"First Name":"John",
"Last Name":"Smith"
}
由于Java不允许在变量名中使用空格,我正在尝试查看Gson是否有将其解析为First_Name或FirstName之类的内容的规定,以便我可以在Java类中使用First_Name或FirstName作为变量名来表示此数据
有没有办法做到这一点,或者我需要制作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 ;
}
}