简单的Java问卷使用JSON
我做了一份简单的问卷。我需要编写对JSON文件的响应。怎么做? 我使用Idea Intellij和Library Gson与JSON合作。 这是主要类“ Quiz”:
package questions;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.google.gson.GsonBuilder;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Scanner;
public class Quiz {
public static <Outfile> void main(String[] args) throws IOException {
String userJson = "[{\"question\": \"1.What is your marital status?\", \"a\": \"(a)Single\", \"b\": \"(b)Married\"}," +
"{\"question\": \"2.Are you planning on getting married next year?\", \"a\": \"(a)Yes\", \"b\": \"(b)No\"},"+
"{\"question\": \"3.How long have you been married?\", \"a\": \"(a)Less than a year\", \"b\": \"(b)More than a year\"},"+
"{\"question\": \"4.Have you celebrated your one year anniversary?\", \"a\": \"(a)Yes\" , \"b\": \"(b)No\"}]";
Gson gson = new Gson();
Type questionListType = new TypeToken<ArrayList<Question>>(){}.getType();
ArrayList<Question> questionArray = gson.fromJson(userJson, questionListType);
FileWriter fileWriter = new FileWriter("answer.json");
for(Question question : questionArray) {
System.out.println("Question:" + question.question);
System.out.println("Answer:" + question.a + " " + question.b);
Scanner keyboardInput = new Scanner(System.in);
String answer = keyboardInput.nextLine();
System.out.println("You got: " + answer);
}
}}
这是类“问题”:
package questions;
public class Question {
public String question;
public String a;
public String b;
public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setAnswer2(String b) {
this.b = b;
}
}
我正在尝试使用文件作者,但是我做错了。输出文件为空。请帮我,请
I made a simple questionnaire. I need to write the responses to a JSON file. How to do it?
I use IDEA Intellij and library GSON for work with JSON.
This is main class "Quiz":
package questions;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.google.gson.GsonBuilder;
import java.io.FileWriter;
import java.io.IOException;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.Scanner;
public class Quiz {
public static <Outfile> void main(String[] args) throws IOException {
String userJson = "[{\"question\": \"1.What is your marital status?\", \"a\": \"(a)Single\", \"b\": \"(b)Married\"}," +
"{\"question\": \"2.Are you planning on getting married next year?\", \"a\": \"(a)Yes\", \"b\": \"(b)No\"},"+
"{\"question\": \"3.How long have you been married?\", \"a\": \"(a)Less than a year\", \"b\": \"(b)More than a year\"},"+
"{\"question\": \"4.Have you celebrated your one year anniversary?\", \"a\": \"(a)Yes\" , \"b\": \"(b)No\"}]";
Gson gson = new Gson();
Type questionListType = new TypeToken<ArrayList<Question>>(){}.getType();
ArrayList<Question> questionArray = gson.fromJson(userJson, questionListType);
FileWriter fileWriter = new FileWriter("answer.json");
for(Question question : questionArray) {
System.out.println("Question:" + question.question);
System.out.println("Answer:" + question.a + " " + question.b);
Scanner keyboardInput = new Scanner(System.in);
String answer = keyboardInput.nextLine();
System.out.println("You got: " + answer);
}
}}
This is class "Question":
package questions;
public class Question {
public String question;
public String a;
public String b;
public String getQuestion() {
return question;
}
public void setQuestion(String question) {
this.question = question;
}
public String getA() {
return a;
}
public void setA(String a) {
this.a = a;
}
public String getB() {
return b;
}
public void setAnswer2(String b) {
this.b = b;
}
}
I'm trying to use FileWriter, but I'm doing it wrong. The output file is empty. Help me, pls.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您已经创建了一个文件作者,但是实际上您从未为文件写任何东西。这就是为什么文件为空的原因。
这将使您可以将内容写入文件。在编写内容后,请确保在文件作者上调用
CLOSE()
。之后,您的文件wonse.json
应包含:You have created a FileWriter, but you are never actually writing anything to the file. This is why the file is empty.
This would allow you to write contents to a file. Make sure to call
close()
on the FileWriter after writing your content. After that your fileanswer.json
should contain: