sách gpt4 ai đã đi

java - 多维 map

In lại 作者:行者123 更新时间:2023-12-02 11:54:02 29 4
mua khóa gpt4 Nike

我在大学时正在编写 Android 应用程序。

用户被询问必须回答的问题。

我通过服务器的 HTTP 请求/响应获取问题。它们以字符串形式传递。该字符串看起来像这样,有两个问题:

(requestedQuestion):

id: 1
question: Mit was stylet man HTML?
answer1: PHP
answer2: C++
answer3: Java
answer4: CSS
answerR: 4
picture:
kind: 4
category: Webprogrammierung
semester: 2
difficulty: 1
ranking:
report:
moderated:
id: 2
question: Wie viele Bits hat ein Byte?
answer1: 4
answer2: 8
answer3:
answer4:
answerR: 2
picture:
kind: 2
category: Informatik
semester: 1
difficulty: 2
ranking:
report:
moderated:

我想将字符串放入多维映射中,以便更好地访问每个属性。

目前我们有一个简单的 map 生成器,可以生成法线贴图,但这无法正常工作:

HashMap map = new HashMap();
String payload = requestedQuestion;
String[] keyVals = payload.split("\\s*\n");
for(String keyVal:keyVals) {
String[] parts = keyVal.split(":", 2);
map.put(parts[0],parts[1]);
}

我想要一个像这样的多维(JSON 响应)映射,以便我们可以访问每个问题及其属性:

Map: {question1=
{
id= 1,
question= Mit was stylet man HTML?,
answer1= PHP,
answer2= C++,
answer3= Java,
answer4= CSS,
answerR= 4,
picture=,
kind= 4,
category= Webprogrammierung,
semester= 2,
difficulty= 1,
ranking=,
report=,
moderated=
},
question2=
{
id= 2,
question= Wie viele Bits hat ein Byte?,
answer1= 4,
answer2= 8,
answer3=,
answer4=,
answerR= 2,
picture=,
kind= 2,
category= Informatik,
semester= 1,
difficulty= 2,
ranking=,
report=,
moderated=
}
}

1 Câu trả lời

从服务器提供 JSON 答案更为自然:

{ 
"id": 1,
"question": "Mit was stylet man HTML?",
"answers" : [
{ "value": "PHP" },
{ "value" : "C++"},
{ "value" : "Java"},
{ "value" : "CSS"}
],
"rightAnswer": 4,
"kind": 4,
"category": "Webprogrammierung",
"semester": 2,
"difficulty": 1
}

有关 JSON 的更多信息,您可以查看此 liên kết

Sau đó trong Android 中您可以使用 GSON或其他一些库来解析 JSON 响应。

您需要创建 POJO 对象并使用 GSON 注释映射它们。这是我之前提供的 JSON của Objects Ví dụ:

câu hỏi:

public class Question {

@SerializedName("id")
@Expose
private Integer id;
@SerializedName("question")
@Expose
private String question;
@SerializedName("answers")
@Expose
private List answers = null;
@SerializedName("rightAnswer")
@Expose
private Integer rightAnswer;
@SerializedName("kind")
@Expose
private Integer kind;
@SerializedName("category")
@Expose
private String category;
@SerializedName("semester")
@Expose
private Integer semester;
@SerializedName("difficulty")
@Expose
private Integer difficulty;

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getQuestion() {
return question;
}

public void setQuestion(String question) {
this.question = question;
}

public List getAnswers() {
return answers;
}

public void setAnswers(List answers) {
this.answers = answers;
}

public Integer getRightAnswer() {
return rightAnswer;
}

public void setRightAnswer(Integer rightAnswer) {
this.rightAnswer = rightAnswer;
}

public Integer getKind() {
return kind;
}

public void setKind(Integer kind) {
this.kind = kind;
}

public String getCategory() {
return category;
}

public void setCategory(String category) {
this.category = category;
}

public Integer getSemester() {
return semester;
}

public void setSemester(Integer semester) {
this.semester = semester;
}

public Integer getDifficulty() {
return difficulty;
}

public void setDifficulty(Integer difficulty) {
this.difficulty = difficulty;
}
}

答案:

    public class Answer {

@SerializedName("value")
@Expose
private String value;

public String getValue() {
return value;
}

public void setValue(String value) {
this.value = value;
}

}

让我们假设您收到 Sợi dây 格式的响应并将其存储在 response 变量中

String response; // store here response of your server request

然后只需使用GSON来解析该Sợi dây:

Gson gson = new Gson();
Qustion question = gson.fromJson(response, Question.class);

现在你有了Câu hỏi对象。您可以通过下一种方式访问字段

List answers = quesion.getAnswers();

关于java - 多维 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47713456/

29 4 0
Bài viết được đề xuất: java - jfreechart 中预期的标识符
Bài viết được đề xuất: java - Java 代码如何在 Jenkins 构建期间读取 Jenkins 全局凭证?
Bài viết được đề xuất: javascript - React-Native:避免文本换行
Bài viết được đề xuất: Java 传递泛型对象
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com