我正在使用JSON对象为数据创建我的第一个Rest服务 在Gson库2.5的帮助下,在用户和服务器之间进行传输。 我没有使用像泽西岛这样的任何框架。 (那是我的 项目要求)。我使用的java版本是1.6(我的要求的一部分) jboss服务器和Eclipse作为IDE。
目前我有一个简单的HTML表单中的两个小函数。首先是 suposed用于请求来自JSON文件的数据,第二个用于 将新的json信息添加到json文档中。
问题是:当我尝试访问JSON文件时,返回一个数组 最后提交的人。当我保存新的Person信息时,该信息是 没有保存在人员JsonFile中,而是保存在其他地方[没有想法的地方]。 我的json文件位于Projects主文件夹中。
任何帮助都是非常苛刻的。
GetData类:
@Path("/data")
public class GetDataClass {
@GET
@Produces("text/plain")
public ArrayList<PersonConstructor> displayJsonFile() throws IOException{
ArrayList<PersonConstructor> newLib = new ArrayList<PersonConstructor>();
File jsonFile = new File("personsJsonFile.json");
Scanner fileInput = new Scanner(jsonFile);
Gson gson = new Gson();
while(fileInput.hasNextLine()){
String jsonLine = fileInput.nextLine();
PersonConstructor singlePerson = gson.fromJson(jsonLine, PersonConstructor.class);
newLib.add(singlePerson);
}
fileInput.close();
return newLib;
}
}
AddData Class:
@Path("/add")
public class AddPersonsClass {
@POST
public String addPersons(
@FormParam("idInput") int idInput,
@FormParam("surnameInput") String surnameInput,
@FormParam("nameInput") String nameInput
) throws IOException
{
Gson gson = new Gson();
PersonConstructor newPerson = new PersonConstructor();
newPerson.setPersonId(idInput);
newPerson.setPersonNume(nameInput);
newPerson.setPersonPrenume(surnameInput);
File jsonFile = new File("personsJsonFile.json");
FileWriter jsonWriter = new FileWriter(jsonFile);
System.out.println(newPerson);
String jsonLine = gson.toJson(newPerson);
System.out.println(newPerson);
jsonWriter.write(jsonLine+"\n");
jsonWriter.close();
return "Element: " + newPerson + "has been added";
}
}
PersonConstructor类:
public class PersonConstructor {
private int personId;
private String personNume;
private String personPrenume;
public PersonConstructor(int personId, String personNume,String personPrenume){
this.personId = personId;
this.personPrenume = personPrenume;
this.personNume = personNume;
}
public PersonConstructor() {
}
public int getPersonId(){
return personId;
}
public void setPersonId(int personId){
this.personId = personId;
}
public String getPersonNume(){
return personNume;
}
public void setPersonNume(String personNume){
this.personNume = personNume;
}
public String getPersonPrenume(){
return personPrenume;
}
public void setPersonPrenume(String personPrenume){
this.personPrenume = personPrenume;
}
public String toString(){
return String.format("\n%s %s %s\n", this.personId, this.personNume, this.personPrenume);
}
}
Json文件包含:
{"personId":5,"personNume":"Ursu","personPrenume":"Niculae"},
{"personId":6,"personNume":"Ivan","personPrenume":"Claudiu"},
{"personId":7,"personNume":"Hap","personPrenume":"Dorel"}
答案 0 :(得分:0)
您的问题似乎是您没有指定保存文件的路径。
创建文件时添加路径。
final String jsonDirectory = "path to file";
File file = new File(jsonDirectory + "\\results.txt");