我有一个对象数组,它是函数可以采用的参数值的列表。这可以是任何复杂的对象。
我正在尝试使用 gson 从对象数组构建一个 json,如下所示:
private JsonArray createArgsJsonArray(Object... argVals) { JsonArray argsArray = new JsonArray(); Arrays.stream(argVals).forEach(arg -> argsArray.add(gson.toJson(arg))); return argsArray; }
这会将所有 arg 值视为字符串。
它转义了字符串参数
"args":["\"STRING\"","1251996697","85"]
我更喜欢以下输出:
"args":["STRING",1251996697,85]
有没有办法使用 gson 来实现这一点?
我使用了org.json
,我能够达到预期的结果,但它不适用于复杂的对象。
编辑:
我应用了 @Michał Ziober 提供的解决方案,但现在如何取回该对象。
Gson gson = new Gson();
Object strObj = "'";
JsonObject fnObj = new JsonObject();
JsonObject fnObj2 = new JsonObject();
fnObj.add("response", gson.toJsonTree(strObj));
fnObj2.addProperty("response", gson.toJson(strObj));
System.out.println(gson.fromJson(fnObj.toString(),
Object.class)); --> prints {response='} //Not what I want!
System.out.println(gson.fromJson(fnObj2.toString(),
Object.class)); --> prints {response="\u0027"}
慕码人8056858
眼眸繁星
长风秋雁
相关分类