从json数组读取数据以在图形中绘制

时间:2019-07-11 12:00:32

标签: android json mpandroidchart

因此,我正在使用MPandroid图表依赖项在Android应用程序上绘制图形。为此,我将数据添加到图的Entry类的ArrayList中。 我现在暂时手动添加数据,但是我想从json文件中解析数据并将其添加到图形中。谁能告诉我如何读取Json数组的各个数据元素以添加到图形中。

这是我用来读取json文件的代码。我的文件位于资产文件夹中。

  try {
        InputStream is=getAssets().open("gaitdata.json");
        int size=is.available();
        byte[] buffer=new byte[size];
        is.read(buffer);
        is.close();
        json=new String(buffer,"UTF-8");
        JSONArray jsonArray=new JSONArray(json);

            for(int i=0;i<jsonArray.length();i++){
                JSONObject obj=jsonArray.getJSONObject(i);
                if(obj.getString("name").equals("kinematics")){
                    hipvalue.add(obj.getString("hip_min"));


              }
            }

这也是我要读取的json文件。

{
 "name":"kinematics",
 "hip_min":[1.2,5.67,2.34,6.8]
}

我也想要float值,但是由于它不起作用,所以我使用obj.getString()来获取json的“ hip_min”值。

最后,这就是我手动将数据添加到数组列表的方式。

ArrayList<Entry> entries=new ArrayList<>();
        entries.add(new Entry(0,19.85f));

1 个答案:

答案 0 :(得分:0)

要将Json Arry转换为浮动数组,可以尝试以下代码。

   String value = "{'name':'kinematics','hip_min':[1.2,5.67,2.34,6.8]}";
        JSONObject obj = new JSONObject(value);
        List hip_min = new ArrayList<Float>();
        JSONArray jsonArray;

        jsonArray = obj.getJSONArray("hip_min");

        for (Object item : jsonArray
        ) {
            hip_min.add(item);
        }
        System.out.println("Size : " + hip_min.size());

对于图表

 int i=0;
        for (Object item:hip_min
             ) {
            entries.add(new Entry(i,item))
                    i=i+2;


        }

i的值用于水平移位。 我希望这会有所帮助。