【发布时间】:2017-05-13 05:45:30
【问题描述】:
我正在尝试使用 json-simple 1.1.1 发送 API 调用,并将字段和值保存为 HashMap。我应该发送这些参数:
{ api_key : string,
product_id : string,
name : string,
tax_rates : array }
这是一个 HashMap 示例:
HashMap<String,Object> arg = new HashMap<String, Object>();
arg.put("product_id","42");
arg.put("name", "EKOS");
arg.put("tax_rates", taxarray);
我也将 taxarray 保存为 HashMap:
HashMap<String, Object> taxarray = new HashMap<String, Object>();
taxarray.put("name","EKOS");
taxarray.put("type", "type_value_fixed");
taxarray.put("value", "56");
但是当我执行 API 调用时,它会返回错误:参数“tax_rates”无效。所需的参数类型是数组。
我一直在尝试将 taxarray HashMap 也保存为 JSONArray。你能帮我解决这个问题吗?
另一个问题:如何在一个“tax_rates”中保存 2 个或多个税率?这是一个例子:
HashMap<String,Object> arg = new HashMap<String, Object>();
arg.put("product_id","42");
arg.put("name", "EKOS");
arg.put("tax_rates", array [
taxarray1[],
taxarray2[]
]);
【问题讨论】:
-
建议您应该使用 Json 对象来存储对象,例如:{ "product_id": 42, "name": "EKOS", "tax_rates": { "a": "b", "c": "d", "e": "f" } }
-
嗯...我不推荐这种方法。
HashMap不等同于 JavaScript 对象;它的目的是捕获实现相同接口的对象。虽然你可以让它工作,但这不是 Java 的方式。我建议尝试类似mkyong.com/java/jackson-2-convert-java-object-to-from-json 的方法,以使用现有工具将您的 JSON 映射到 Java 类,从而以更 Java 的方式捕获您的预期结构。
标签: java arrays json serialization hashmap