java JSON反序列化brakets{}中的一系列对象
我正在为Alpha Vantage编写Java库解析器。以下是下载一些数据的端点:
如您所见,历史数据包含在{}中,而不是[]中。你有什么想法来反序列化这个吗?我正在使用Gson,但我找不到任何方法
你可以在下面搜索框中键入要查询的问题!
我正在为Alpha Vantage编写Java库解析器。以下是下载一些数据的端点:
如您所见,历史数据包含在{}中,而不是[]中。你有什么想法来反序列化这个吗?我正在使用Gson,但我找不到任何方法
# 1 楼答案
首先,您的JSON结构可能不是您想要的。“时间序列(数字货币日内)”的内容是一个对象,其属性似乎表示日期。这从一开始就令人讨厌,因为它们是动态生成的。如果内容是一个对象列表(也可以包含日期值),那么这将非常简单:
这将是一个更好的结构,imo。然后您所需要做的就是将属性名称更改为更加Java友好的名称,并创建一些POJO,然后您可以轻松地使用GSON进行反序列化。见:http://www.baeldung.com/gson-deserialization-guide
对于当前结构的解决方案,您可以使用JSONObject的entitySet()方法
它返回一个集合>;对象假设您将在表示根Json对象的对象上使用该方法,那么您将在Map对象中获得的字符串值将是“元数据”和“时间序列(当日数字货币)”。这些是JSON中根对象的属性。与之关联的JsonElement将是属性的值,在本例中是另一个JSON对象
因此,您可以利用这一点以及您对JSON结构的了解,将数据反序列化为类的某些对象。当然,有几个循环