【发布时间】:2019-09-20 07:58:17
【问题描述】:
我尝试了很多很多东西,但都无济于事。响应由 ASP.NET 服务检索。响应中有一个字段“$id”不在数据库表中。我认为这只是 C# 用来识别字段和响应的索引工具。
这是 API 响应
[
{
"$id": "1",
"AccountEvaluations": [],
"EvaluationDevelopments": [],
"EvaluationQuestions": [],
"ID": "44e5ecdb-e7b8-412e-8f09-f8e1ec18eeaf",
"TestName": "Psychometric Evaluation"
},
{
"$id": "2",
"AccountEvaluations": [],
"EvaluationDevelopments": [],
"EvaluationQuestions": [],
"ID": "4db4a145-0158-488b-b44d-285ce99111c7",
"TestName": "Numeric Reasoning Evaluation"
},
{
"$id": "3",
"AccountEvaluations": [],
"EvaluationDevelopments": [],
"EvaluationQuestions": [],
"ID": "941495b9-7bc6-4451-bd79-86c31617fa5c",
"TestName": "Comprehesnive Evaluation"
}
]
我已删除其他表(数组)中的数据以简化响应。
我试图用 gson 解析它的对象类
package com.example.coregradingmobile.ui.Controllers;
import com.google.gson.annotations.SerializedName;
import java.util.HashSet;
public class Evaluations {
@SerializedName("$id")
private String AAA;
@SerializedName("ID")
private String ID;
@SerializedName("TestName")
private String TestName;
@SerializedName("AccountEvaluations")
private HashSet<AccountEvaluations> AccountEvaluations;
@SerializedName("EvaluationDevelopments")
private HashSet<EvaluationDevelopments> EvaluationDevelopments;
@SerializedName("EvaluationQuestions")
private HashSet<EvaluationQuestions> EvaluationQuestions;
public Evaluations()
{
AccountEvaluations = new HashSet<>();
EvaluationDevelopments = new HashSet<>();
EvaluationQuestions = new HashSet<>();
}
public String getAAA() {
return AAA;
}
public void setAAA(String AAA) {
this.AAA = AAA;
}
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getTestName() {
return TestName;
}
public void setTestName(String testName) {
TestName = testName;
}
public HashSet<AccountEvaluations> getAccountEvaluations() {
return AccountEvaluations;
}
public void setAccountEvaluations(HashSet<AccountEvaluations> accountEvaluations) {
AccountEvaluations = accountEvaluations;
}
public HashSet<EvaluationQuestions> getEvaluationQuestions() {
return EvaluationQuestions;
}
public void setEvaluationQuestions(HashSet<EvaluationQuestions> evaluationQuestions) {
EvaluationQuestions = evaluationQuestions;
}
public HashSet<EvaluationDevelopments> getEvaluationDevelopments() {
return EvaluationDevelopments;
}
public void setEvaluationDevelopments(HashSet<EvaluationDevelopments> evaluationDevelopments) {
EvaluationDevelopments = evaluationDevelopments;
}
}
我如何调用 JSON 库来完成它的工作(请注意,请求是 JSON 字符串。这是有效的):
Gson gson = new Gson();
Type collectionType = new TypeToken<Collection<Evaluations>>(){}.getType();
Collection<Evaluations> enums = gson.fromJson(request, collectionType);
我收到的错误(还有更多,但这是唯一重要的):
android.content.res.Resources$NotFoundException: String resource ID #0x3
我曾尝试在课堂上到处乱转,但似乎没有任何效果。任何帮助将不胜感激。谢谢
【问题讨论】:
标签: c# android json gson deserialization