java - 从 json 创建 java 对象列表

标签 java json gson

我有以下 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/

相关文章:

java - 字符串到文本输出

javascript - 计算后将JSON对象值转为十进制数

java - JSON:使 Jackson 仅序列化为对象显式设置的字段

java - Jersey REST 字符编码

java - 如何将缓存的 json 字符串与 gson 一起使用?

java - 使用 SQL Server 和 MyBatis 的批处理 "insert if missing"

java - Mongodb异常字符串索引超出范围: -1

java - 如何修复 Intellij IDEA 不向 Artifact 添加 list ?

javascript - 我的 JSON HTTP 请求出现问题

java - 如何从 HashMap<String,Object> 中的 gson 获取字符串,如下所示