【问题标题】:Put the json array into hashmap using java使用java将json数组放入hashmap
【发布时间】:2015-08-28 09:59:42
【问题描述】:
{
    "Servers": [
        {
            "server": "server1",
            "port": "8000"
        },
        {
            "server": "server2",
            "port": "8000"
        },
        {
            "server": "server3",
            "port": "8000"
        }
    ]
}

我正在尝试使用以下方法将此 json 文件放入 HashMap:

Map<String,Object> map = mapper.readValue(jsonfile, new TypeReference<Map<String, Object>>() {});

jsonfile这里表示json文件的存放路径。 请建议我应该如何将此 json 文件放入 HashMap。

【问题讨论】:

    标签: java json hashmap jackson


    【解决方案1】:

    简单且可维护的解决方案是使用 JSON 解析库之一,例如 GSON

    一般来说,你必须创建 bean 对象来定义 json 文件的结构,然后你可以像这样解析它

        BufferedReader br = new BufferedReader(
            new FileReader("c:\\file.json"));
    
        //convert the json string back to object
        DataObject obj = gson.fromJson(br, DataObject.class);
    

    【讨论】:

      【解决方案2】:

      我也推荐使用 Gson。

      如果您使用 Gradle,请将其导入您的项目(应用程序的 build.gradle);

      compile 'com.google.code.gson:gson:2.3.1'
      

      如果您不使用 Gradle,请参阅 Gson docs here 了解其他构建工具。

      创建一个容器对象以将您的 Json 解析为并保存您的值;

      class Server {
          String server;
          int port;
          // I did not take encapsulation into account for brevity
      }
      

      然后使用 Gson 将你的 Server 对象解析为列表;

      BufferedReader br = new BufferedReader(new FileReader("path_to_your_file"));
      Gson gson = new Gson();
      ArrayList<Server> serverList = gson.fromJson(br, new TypeToken<List<Server>>(){}.getType());
      

      serverList 将包含您的服务器对象列表。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-31
        • 2017-05-13
        • 1970-01-01
        • 1970-01-01
        • 2014-05-21
        • 2021-08-30
        • 1970-01-01
        • 2012-05-03
        相关资源
        最近更新 更多