有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    首先,您的JSON结构可能不是您想要的。“时间序列(数字货币日内)”的内容是一个对象,其属性似乎表示日期。这从一开始就令人讨厌,因为它们是动态生成的。如果内容是一个对象列表(也可以包含日期值),那么这将非常简单:

    {
        "Time Series (Digital Currency Intraday)": [
            {
                "date": "2017-10-24 22:30:00",
                "1a. price (CNY)": "34889.57919003",
                "1b. price (USD)": "5259.23870358",
                "2. volume": "5708.68994668",
                "3. market cap (USD)": "30023363.11434300"
            }
        ]
    }
    

    这将是一个更好的结构,imo。然后您所需要做的就是将属性名称更改为更加Java友好的名称,并创建一些POJO,然后您可以轻松地使用GSON进行反序列化。见:http://www.baeldung.com/gson-deserialization-guide

    对于当前结构的解决方案,您可以使用JSONObject的entitySet()方法

    它返回一个集合>;对象假设您将在表示根Json对象的对象上使用该方法,那么您将在Map对象中获得的字符串值将是“元数据”和“时间序列(当日数字货币)”。这些是JSON中根对象的属性。与之关联的JsonElement将是属性的值,在本例中是另一个JSON对象

    因此,您可以利用这一点以及您对JSON结构的了解,将数据反序列化为类的某些对象。当然,有几个循环