gpt4 book ai didi

android - 将复杂的 JSON 字符串解码为各种对象

转载 作者:行者123 更新时间:2023-11-30 03:36:16 27 4
gpt4 key购买 nike

我只是想知道是否有人可以推荐比 org.json 更好的替代方法来解码复杂的 JSON 字符串。作为引用,这将从 Web 服务器向下传输到 Android(和 iOS,但这是其他开发人员的问题!)设备,它不必返回。

字符串具有以下性质...

{"header":"value","count":value, ..., "messages":[
{"messagetype":1,"name":"value"},
{"messagetype":2,"name":"value","name":value},
{"messagetype":1,"name":"value"},
{"messagetype":3,"name":"value","subvalues":["value",value,value]},
...
{"messagetype":4,"name":value,"name":"value","name":value}
]}

基本上,有一些我始终可以依赖的 header 字段,但随后会有一个消息“数组”,计数、内容和顺序可变。

我已经对此进行了几天的研究,并且已经解雇了 GSON 和其他一些人,因为它们要么需要提前知道确切的结构和/或不能很好地处理嵌入式类型(包含的消息) .

this question 中回答三指出我使用 org.json library我知道我可以使用它来解析字符串,但我猜其中一个答案的回复(“那是 super 老派,现实世界中没有人再使用那个库”)让我质疑我的方法。

谁能推荐一个可以更好地处理这个问题的库/方法?如果有人使用替代方法来处理这种复杂多变的结构,我将非常感谢您的意见。

提前致谢。

最佳答案

关于org.json libray的观点我真的不认同: “那是 super 老派,在现实世界中没有人再使用那个库”,因为使用这个库解析 json 非常简单。另外,json到底能复杂到什么地步呢,我的意思是,都是键值对,没有什么是几行代码解决不了的,比如我给你举几个例子,这样你就明白了确信这很容易做到:
假设您收到来自服务器的响应,其中包含您需要格式化为 json 数组的所有信息,那么您可以执行类似这样的操作来解析字符串:

JsonArray arrayJson = new JsonArray(response); 

但是现在你想访问 arrayJson childs:

for (int i = 0; i < arrayJson.length() - 1; i++)
{
JsonObject json = arrayJson.getJSONObject(i);
}

现在假设您在 for 循环中检索到的那些数组中有另一个 json 数组:然后你会这样得到它们:

for (int i = 0; i < arrayJson.length() - 1; i++)
{
JsonObject json = arrayJson.getJSONObject(i);
JSONArray anotherArray = json.getJSONArray("key");
}

.......,更多的嵌套你可以用同样的方式处理它们,所以我想我的观点成立了。请记住,有时,努力寻找更简单的方法来做事,会使事情变得更难。

关于android - 将复杂的 JSON 字符串解码为各种对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16620825/

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