gpt4 book ai didi

android - 在 Android 中解析 JSON 数据的最佳方式是什么?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:30 24 4
gpt4 key购买 nike

我有 JSON 数据要解析。结构不固定,有时以单个字符串形式出现,有时以数组形式出现。

目前,我们正在使用 GSON 库来解析 JSON,但当它作为数组出现时会遇到问题。

例如:

1.  {"msg":"data","c":300,"stat":"k"}


2. {
"msg": [
" {\"id\":2,\"to\":\"83662\",\"from\":\"199878\",\"msg\":\"llll\",\"c\":200,\"ts\":1394536776}"
],
"c": 200,
"stat": "k",
"_ts": 1394536776
}

在上面的示例中,有时我将 msg 作为字符串获取,有时作为数组获取。

谁能帮帮我?如果我决定使用 JSON 解析,那将非常乏味,因为我有大约 20 多个 API 需要解析,并且每个 API 至少包含 50 个字段。

最佳答案

您可以使用 JSONObjectJSONArray类而不是 GSON 来处理 JSON 数据

第一个例子

String jsonStr = "{\"msg\":\"data\",\"c\":300,\"stat\":\"k\"}";

JSONObject jsonObj = new JSONObject(jsonStr);

String msg = jsonObj.getString("msg");
Integer c = jsonObj.getInteger("c");
String stat = jsonObj.getString("stat");

对于第二个例子

   String jsonStr = ... // "your JSON data";

JSONObject jsonObj = new JSONObject(jsonStr);

JSONArray jsonArr = jsonObj.getJSONArray("msg");

JSONObject arrItem = jsonArr.getJSONObject(0);

//and so on

JSONObject 类还有方法 opString、opArray,如果您尝试获取的数据不存在或类型错误,它们不会抛出异常

例如

JSONArray arr = jsonObj.optJSONArray("msg");
JSONObject msg = null;
if (arr != null) {
msg = arr.getJSONObject(0)
} else {
msg = jsonObj.getJSONObject("msg");
}

关于android - 在 Android 中解析 JSON 数据的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22326169/

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