gpt4 book ai didi

java - 从控制台读取用户输入并将其写入 JSON

转载 作者:行者123 更新时间:2023-12-01 21:47:48 25 4
gpt4 key购买 nike

我是 Java 编程新手。我想做的是,从控制台读取输入,然后将其写入 JSON,之后我会将 JSON 中的数据保存到数据库中。

我编写了一个类UserInput,它读取用户输入,如下所示:

package com.mmk.vo;

import java.io.*;
import java.util.Scanner;
import java.io.IOException;

public class UserInput {

private String firstName,lastName,email, mobile;

public String UserInput() {

Scanner sc = new Scanner(System.in);
System.out.println("Enter your name;");
String firstName = sc.next();

Scanner sc1 = new Scanner(System.in);
System.out.println("Enter your lastName;");
String lastName = sc1.next();

Scanner sc2 = new Scanner(System.in);
System.out.println("Enter your email;");
String email = sc2.next();

Scanner sc3 = new Scanner(System.in);
System.out.println("Enter your mobile;");
String mobile = sc3.next();

return "UserInput [fisrtName=" + firstName + ", lastName=" + lastName + ", email=" + email + ", mobile="
+ mobile + "]";

}
}

我在主类中编写了一个方法,在其中给出了一些默认值,其作用是将这些默认值写入数据库。

    static UserInput jsonToDB(){
String json = "{"
+ "firstName: \"Arsene\","
+ "lastName: \"Wenger\","
+ "mobile: \"1234\","
+ "email: \"test@test.com\""
+ "}";

Gson g = new Gson();
UserInput user = g.fromJson(json, UserInput.class);

//System.out.println(user);
return user;
}

现在,我希望将来自控制台的用户输入写入 JSON。有人可以指导我如何实现这一目标吗?

谢谢。

最佳答案

您的代码还有很多可以改进的地方,但要解决主要问题:

在您的 UserInput 类中,您已声明了未在“UserInput”方法中设置的类的属性。您的 UserInput 方法可能应该重命名为“readUser”之类的名称,因为“UserInput”通常表示 UserInput 类的构造函数方法。

所以我建议更改 UserInput 方法的名称并将其设为静态。还使其构造一个新的 UserInput 对象,并将其从控制台读取的值设置到该新 UserInput 对象的属性上 - 如下所示:

public static UserInput readUser() {

UserInput userInput = new UserInput(); //construct a new UserInput instance

Scanner sc = new Scanner(System.in);
System.out.println("Enter your name;");
userInput.firstName = sc.next(); // set the value read from console as a property on the UserInput instance

... etc.

return userInput; // return the instance of UserInput object that we just created.


}

然后在 jsonToDb() 方法中 - 将“UserInput”对象作为参数:即

public static UserInput jsonToDb(UserInput userInput) {

Gson g = new Gson();

String json = userInput.toJson(userInput);

.....
UserInput user = g.fromJson(json, UserInput.class);

}

或者不传入 UserInput 对象 - 使用静态方法从控制台读取它:

public static UserInput jsonToDb() {

UserInput userInput = UserInput.readUser();
Gson g = new Gson();

String json = userInput.toJson(userInput);

.....
UserInput user = g.fromJson(json, UserInput.class);

}

关于java - 从控制台读取用户输入并将其写入 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35740786/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com