我有以下 json,我需要将其转换为 java 对象列表。
{
"model":[
{
"syscall_1":"execve",
"syscall_2":"brk"
},
{
"syscall_1":"brk",
"syscall_2":"access"
},
{
"syscall_1":"access",
"syscall_2":"mmap"
},
{
"syscall_1":"mmap",
"syscall_2":"access"
}
]
}
我正在使用 gson 及其 TypeToken>(){}.getType() API,但是我对我的对象应该如何对应于输入 json 感到有点困惑。
在这种情况下如何使用 TypeToken?
最佳答案
另一种选择(不使用类型标记,但仍然可以实现您想要的)是解析整个 json 对象,然后像这样访问模型数组:
import com.google.gson.Gson;
import java.util.List;
public class TestMe {
public static void main(String[] args) {
String jsonSt2 = "{\"model\":[{\"syscall_1\":\"execve\",\"syscall_2\":\"brk\"},{\"syscall_1\":\"brk\",\"syscall_2\":\"access\"},{\"syscall_1\":\"access\",\"syscall_2\":\"mmap\"},{\"syscall_1\":\"mmap\",\"syscall_2\":\"access\"}]}";
System.out.println("your json: " + jsonSt2);
ModelObject object = new Gson().fromJson(jsonSt2, ModelObject.class);
System.out.println("Created Model object, array size is " + object.model.size());
for (ModelItem mi : object.model) {
System.out.println(mi.syscall_1 + " " + mi.syscall_2);
}
}
}
class ModelObject {
List<ModelItem> model;
}
class ModelItem {
String syscall_1;
String syscall_2;
}
输出
Created Model object, array size is 4
execve brk
brk access
access mmap
mmap access
mmap access
关于java - 从 json 创建 java 对象列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28892444/