我想这样做来创建一个像下面这样的json对象。
JsonObject request = new JsonObject();
request.addProperty("requestid", UUID.randomUUID().toString());
request.addProperty("type", "hotel");
request.addProperty("markups", new double[]{1.0,2.0,3.0}); // This says "The method addProperty(String, String) in the type JsonObject is not applicable for the arguments (String, double[])"
request.add("markups", new double[]{1.0,2.0,3.0});// This says "The method add(String, JsonElement) in the type JsonObject is not applicable for the arguments (String, double[])"
JSON对象:
{
"requestid": "05afcd81-9c59-4a21-a61e-ae48fda6bdd0",
"type": "hotel",
"markups": [1.0,2.0,3.0]
}
请注意,这不是关于,从Json和toJson的事情。它是JSON CREATION和READING对象而不是转换。 那么,我怎么能用上面的实现来做呢。
答案 0 :(得分:2)
这可以使用JsonPrimitive完成,如下所示:
JsonObject request = new JsonObject();
request.addProperty("requestid", UUID.randomUUID().toString());
request.addProperty("type", "hotel");
JsonArray jpArray = new JsonArray();
jpArray.add(new JsonPrimitive(1.0));
jpArray.add(new JsonPrimitive(2.0));
jpArray.add(new JsonPrimitive(3.0));
request.add("markups", jpArray);
OutPut:
{
"requestid": "6259f169-3a55-4a2e-b03c-5931d4daf2fd",
"type": "hotel",
"markups": [
1.0,
2.0,
3.0
]
}
答案 1 :(得分:2)
由于您希望使用解析树对象来构建JSON结构,因此您需要实例化并将值添加到JsonArray
对象,或者使用Gson并转换double[]
。我假设你宁愿做后者:
public static void main( String[] args )
{
double[] d = new double[] { 1.0, 2.0};
JsonElement e = new Gson().toJsonTree(d);
JsonObject o = new JsonObject();
o.add("array", e);
System.out.println(o);
}
输出:
{ “阵列”:[1.0,2.0]}
toJsonTree()
方法获取Java数组并将其转换为Gson解析树JsonArray
并将其作为超类JsonElement