【问题标题】:Parse JSON in Java using GSON使用 GSON 在 Java 中解析 JSON
【发布时间】:2018-05-31 13:48:09
【问题描述】:

我需要解析一个这样的数组:

[  
   [  
      1527773520000,
      "0.07608800",
      "0.07609800",
      "0.07603200",
      "0.07609300",
      "34.57200000",
      1527773579999,
      "2.62910731",
      73,
      "5.00000000",
      "0.38045959",
      "0"
   ],
   [  
      1527773580000,
      "0.07604100",
      "0.07610000",
      "0.07600700",
      "0.07603100",
      "46.01600000",
      1527773639999,
      "3.49973303",
      127,
      "17.22500000",
      "1.31058409",
      "0"
   ],
   [  
      1527773640000,
      "0.07609200",
      "0.07609800",
      "0.07601500",
      "0.07609700",
      "68.49900000",
      1527773699999,
      "5.21157734",
      102,
      "61.83300000",
      "4.70470068",
      "0"
   ],
   [  
      1527773700000,
      "0.07609700",
      "0.07609800",
      "0.07602200",
      "0.07609400",
      "60.61400000",
      1527773759999,
      "4.61160915",
      71,
      "46.85800000",
      "3.56536691",
      "0"
   ],
   [  
      1527773760000,
      "0.07605900",
      "0.07610000",
      "0.07604900",
      "0.07605000",
      "136.51000000",
      1527773819999,
      "10.38675618",
      163,
      "92.85000000",
      "7.06510307",
      "0"
   ]
]

我使用以下代码来获取上述数组,然后尝试解析它,正如您在代码中看到的那样。但它不起作用,因为我是 Java 新手。请您更正我的代码或学习新代码吗?解析数组应该怎么做?

非常感谢。

import java.io.*;  
import java.net.*;
import java.util.*;
import com.google.gson.*;

public class myURLConnection
{
    public static void main(String[] args) 
    {
        try
        {
            URL url;
            url = new URL("https://api.binance.com/api/v1    /klines?symbol=ETHBTC&interval=1m&limit=5");
            URLConnection urlcon = url.openConnection();
            BufferedReader br = new BufferedReader(new InputStreamReader
                                            (urlcon.getInputStream()));
            String i;
            while ((i = br.readLine()) != null) 
            {
                System.out.println(i);
                Gson gson = new Gson();
                String[] pairString;
                pairString = gson.fromJson(i, String.class);
                double test1;
                test1 = pairString[1][4] + pairString[0][4];
                System.out.format("This is the summation: %d", test1);

            }
        } 

        catch (Exception e) 
        {
            System.out.println(e);
        }
    }
}

【问题讨论】:

  • 先读取整个数据,再用gson解析
  • @HemantPatel 你能编辑 mu 代码吗?

标签: java arrays json gson


【解决方案1】:

试试这个代码:

BufferedReader br = new BufferedReader(new InputStreamReader
                                (urlcon.getInputStream()));
StringBuilder builder = new StringBuilder();
while ((i = br.readLine()) != null) 
{
    builder.add(i);
}
Gson gson = new Gson();
String[][] pairString;
pairString = gson.fromJson(builder.toString(), pairString.getClass());

【讨论】:

  • 感谢您的精彩代码。我试过了,但我无法对其进行数学计算。例如,我需要计算第四个元素的总和。我怎样才能在你的代码之后对其进行编码?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-01
  • 2011-07-26
  • 1970-01-01
  • 2020-09-17
  • 1970-01-01
  • 2011-04-26
相关资源
最近更新 更多