Java REST服务。信息未保存到文件,并且我的代码未读取该文件
我正在使用数据的JSON对象创建我的第一个Rest服务 在Gson库2.5的帮助下,在用户和服务器之间进行传输。 我没有使用任何像Jersey之类的框架。(那是我的Java REST服务。信息未保存到文件,并且我的代码未读取该文件,java,json,eclipse,rest,Java,Json,Eclipse,Rest,我正在使用数据的JSON对象创建我的第一个Rest服务 在Gson库2.5的帮助下,在用户和服务器之间进行传输。 我没有使用任何像Jersey之类的框架。(那是我的 项目要求)。我使用的java版本是1.6(我要求的一部分) jboss服务器和Eclipse作为IDE 目前,我有两个来自简单HTML表单的小函数。首先是 suposed to从JSON文件请求数据,第二个请求被suposed to 向json文档添加新的json信息 问题是:当我尝试访问JSON文件时,返回的数组 最后提交的人。当
项目要求)。我使用的java版本是1.6(我要求的一部分) jboss服务器和Eclipse作为IDE 目前,我有两个来自简单HTML表单的小函数。首先是 suposed to从JSON文件请求数据,第二个请求被suposed to 向json文档添加新的json信息 问题是:当我尝试访问JSON文件时,返回的数组 最后提交的人。当我保存新的个人信息时,该信息是 不是保存在personsJsonFile中,而是保存在其他地方[不知道在哪里]。 我的json文件位于项目主文件夹中 非常感谢您的帮助 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;
}
}
施工人员等级:
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"}
您的问题似乎是您没有指定保存文件的路径 创建文件时添加路径
final String jsonDirectory = "path to file";
File file = new File(jsonDirectory + "\\results.txt");
若要测试是否存在路径问题,请在创建或读取文件时使用绝对路径。。。例如;File jsonFile=new文件(“/opt/dev/personsJsonFile.json”),感谢您的帮助。它现在保存到文件中,但删除文件中包含的所有内容以添加新信息。我会将您的答案标记为正确,但如果可以,请回答您认为发生这种情况的原因。很简单,您再次写入同一个文件,并将其覆盖,而不是附加新数据。如果希望附加到保留格式的现有json数据,那么最好和最可靠的方法是不附加到文件,而是读取整个json文件并反序列化到对象,附加到对象集合,然后将输出序列化回json文件。顺便说一句,我不知道你为什么要将文件保存在本地,因为web服务应该为每个调用返回响应,并让调用方处理。谢谢,我明白了。我马上就开始。不幸的是,我不知道你说的最后一句话是什么意思。我正在本地保存数据,因为我目前没有使用数据库,项目的主题是客户机/服务器通信。我正在保存数据,以便执行其他功能,如编辑/删除/获取所有数据。有没有比本地保存数据更好的方法?
final String jsonDirectory = "path to file";
File file = new File(jsonDirectory + "\\results.txt");