我试图使用json-simple 1.1.1发送API调用,并将字段和值保存为HashMap。我应该把这些参数:如何将数组放入HashMap中以编码JSON对象
{ 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, “名称”: “EKOS”, “tax_rates”:{ “一”: “B”, “C”: “d”, “E”: “F” } } – user1211
唔...我不会推荐这种方法。 'HashMap'不等同于JavaScript对象;其目的是捕获实现相同接口的对象。虽然你可以得到这个工作,但它不是Java的方式。我会建议尝试像https://www.mkyong.com/java/jackson-2-convert-java-object-to-from-json/这样的方法来使用现有工具将您的JSON映射到捕获到的Java类您的期望结构更多的Java方式。 – sadakatsu