首页 > 解决方案 > 创建具有多种数据类型的json?

问题描述

我有一个要求,我必须创建一个看起来像这样的 Json

{
  "method": "Main",
  "executeTime": 4,
  "arguments": [
    {
      "input": "input param"
    },
    {
      "output": "output string"
    }
  ],
  "error": null
}

由于它内部有多种数据类型,所以我制作了一个哈希映射来将它们作为对象处理,然后我可以使用它GSON.toJson()来获取我需要的东西。这是我的代码

HashMap<String, Object> firstLayer = new HashMap<String, Object>();
HashMap<String, Object> secLayer = new HashMap<String, Object>();
List<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>();

firstLayer.put("error", null);
firstLayer.put("method", <method String>);
firstLayer.put("executeTime", System.currentTimeMillis() - beginTime);

secLayer.put("input", <input param string>);
list.add(secLayer);

secLayer = new HashMap<String, Object>();
secLayer.put("output", <output string>);
list.add(secLayer);

// JIT pops error here. This is unexpected.
firstLayer.add("arguments", list);

错误消息说:The method add(String, List<HashMap<String,Object>>) is undefined for the type HashMap<String,Object>。甚至尝试使用 cast likefirstLayer.add("arguments", (Object)list);但仍然不对。还有其他选择或绕行吗?

标签: javajson

解决方案


我错了,不是firstLayer.add("arguments", list);但是firstLayer.put("arguments", list);

我觉得我今天太努力了。谢谢#tevemadar


推荐阅读