gpt4 book ai didi

GSON 只是为了从 Json 数据中读取 JsonObject 树不起作用

转载 作者:行者123 更新时间:2023-12-05 00:04:10 26 4
gpt4 key购买 nike

我在一个项目中使用 GSON。特别是我使用此代码生成 JSON 字符串:

Gson gs = new Gson();
JsonObject cmdobj = new JsonObject();
cmdobj.addProperty("cmd", cmd);

cmdobj.add("arg", args);

String cmdstr = cmdobj.toString();

这会产生类似的东西:
{"cmd":"HANDSHAKE","arg":{"protocol":"syncmanager","serverName":"12345678910"}}

然后在客户端机器上读取 json 数据:
String cmdstr = readCommand(this.is);
Gson gs = new Gson();
JsonObject jsobj = gs.fromJson(cmdstr, JsonObject.class);
JsonElement cmd = jsobj.get("cmd");
JsonObject args = jsobj.get("arg").getAsJsonObject();

问题是应该包含解析对象的 jsobj 不包含任何内容(如果我执行 toString() 打印 {} )。为什么这个?我只想要另一边的 JSonObject 树,而不是对象序列化。有什么线索吗?

最佳答案

JsonObject jsobj = new Gson().fromJson(cmdstr, JsonObject.class)

将尝试从字符串构建一种 JsonObject 类型 - 您的字符串显然不是。

我认为您想要做的是获取原始解析树 - 您可以这样做:
JsonObject jsobj = new JsonParser().parseString(cmdstr);

this更多细节。

关于GSON 只是为了从 Json 数据中读取 JsonObject 树不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5956210/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com