我有这样的json结构,我如何在Gson的帮助下解析json。我需要在json对象中存储键值,我尝试了许多与动态数组相关的例子,但是没有方括号的动态json数组我无法使用Gson进行解析。有什么解决方案或需要手动解析Json吗?如果有人觉得重复,请在下面评论答案。
{ "Result":[[
"Title",
{
"0": 1323,
"1": 3358,
"2": 2123,
"3": 8536,
"4": 1399,
"5": 9303,
"7": 9732,
"8": 3433,
"9": 1383
}
],[
"Title",
{
"0": 1323,
"1": 3358,
"2": 2123,
"3": 8536,
}
]]}
3条答案
按热度按时间qco9c6ql1#
首先,JSON会引发异常,因为它是无效的--在第二个示例中,最后一个值的末尾有一个额外的逗号。
"3": 8536,
应该是"3": 8536
。在解决了这个问题之后,只要你正确地定义了你的对象,这应该是一个简单的任务。
从这里开始,
Result
类需要以一种特殊的方式进行反序列化,因为Result
类中的字段并不直接Map到JSON中的条目。相反,我们需要提取每个Result
中包含的JsonArray
的第一个和第二个元素,并相应地解析它。看起来像这样:请注意,我的示例省略了错误检查。最后,注册这个反序列化器,您应该已经准备好了:
这将打印:
我将把它留给OP来实现相反的操作,即
Result
的串行化器来生成相同的结果。xeufq47z2#
在 * * Gson * * 中 使用 * * 嵌套 Map * * 找到 解析 上述 json 的 简单 方法
中 的 每 一 个
响应 接收 方
格式
u1ehiz5o3#
是的,您可以解析嵌套的json对象。
要完全理解,请查看以下内容:代码说明:https://www.youtube.com/watch?v=ZjZqLUGCWxo