Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将json数组转换为浮点数组_Android_Arrays_Json - Fatal编程技术网

Android 如何将json数组转换为浮点数组

Android 如何将json数组转换为浮点数组,android,arrays,json,Android,Arrays,Json,我想从json数组中获取数据,我想为我的条形图创建常规浮点数组。。但是如何将json数组更改为浮点数组呢 public class fragment extends Fragment { public fragment() { // Required empty public constructor } final static String TAG = "ok"; BarChart barChart; float datay []; float datay1 []; Strin

我想从json数组中获取数据,我想为我的条形图创建常规浮点数组。。但是如何将json数组更改为浮点数组呢

public class fragment extends Fragment {
public fragment() {
    // Required empty public constructor
}


final static String TAG = "ok";

BarChart barChart;

float datay [];
float datay1 [];
String datax [];
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    View fragment = inflater.inflate(R.layout.fragment1, container, false);

    barChart = (BarChart)fragment.findViewById(R.id.barchart);

    fetchData();


    return  fragment;
}

public void fetchData(){
    showLoading("Loading");
    StringRequest strReq = new StringRequest(Request.Method.POST,
            AppConfig.CHART, new Response.Listener<String>() {

        @Override
        public void onResponse(String response) {
            hideLoading();
            try {
                Log.d(TAG,"ini response"+response);
                JSONObject object = new JSONObject(response);
                //datacatagory for datax
                JSONArray datacatagory = object.getJSONArray("category");
                Log.d(TAG,"catagory"+datacatagory);
                JSONArray jdata1 = object.getJSONArray("data");
                Log.d(TAG,"jdata"+jdata1);
                JSONObject obj1 = jdata1.getJSONObject(1);
                Log.d(TAG,"obj"+obj1);
                // arr1 for datay
                JSONArray arr1 = obj1.getJSONArray("data");
                Log.d(TAG,"arr"+arr1);
                //arr2 for datay1
                JSONArray arr2 = obj1.getJSONArray("data");
                Log.d(TAG,"arr"+arr1);

                //how convert data jsonarray to regular array in java??

                chartListener(datay,datax,datay1);


            } catch (JSONException e) {
                e.printStackTrace();
            }

        }
    }, new Response.ErrorListener() {

        @Override
        public void onErrorResponse(VolleyError error) {
            getToast(error.getMessage());
            hideLoading();
        }
    }) {

        @Override
        protected Map<String, String> getParams() {
            return getPOST("laba_rugi");
        }

    };

    addRequestQueen(strReq,TAG);

}


public void chartListener(float datay[],String datax[],float data1[]){
    barChart.setDescription("ok");
    ArrayList<BarEntry> ydata = new ArrayList<>();
    for (int i = 0;i< datay.length;i++){
        ydata.add(new BarEntry(datay[i],i));
    }

    ArrayList<BarEntry> ydata1 = new ArrayList<>();
    for (int i = 0;i< datay.length;i++){
        ydata1.add(new BarEntry(data1[i],i));
    }

    ArrayList<String> xdata = new ArrayList<>();
    for (int i = 0;i < datax.length;i++){
        xdata.add(datax[i]);
    }

    BarDataSet barDataSet = new BarDataSet(ydata,"rugi");
    barDataSet.setColors(ColorTemplate.PASTEL_COLORS);

    BarDataSet barDataSet1 = new BarDataSet(ydata1,"laba");
    barDataSet.setColors(ColorTemplate.JOYFUL_COLORS);

    ArrayList<BarDataSet> dataSets = new ArrayList<>();  // combined all dataset into an arraylist
    dataSets.add(barDataSet);
    dataSets.add(barDataSet1);

    BarData barData = new BarData(xdata,dataSets);
    barData.setValueTextSize(13f);
    barData.setValueTextColor(Color.BLACK);

    int a =00000;
    barChart.setData(barData);
    barChart.setBackgroundColor(a);
    barChart.invalidate();
}
}
公共类片段扩展片段{
公共片段(){
//必需的空公共构造函数
}
最终静态字符串标记=“确定”;
条形图;
浮动数据y[];
浮动数据1[];
字符串datax[];
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
}
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//为该碎片膨胀布局
视图碎片=充气机。充气(R.layout.fragment1,容器,错误);
barChart=(barChart)fragment.findViewById(R.id.barChart);
fetchData();
返回片段;
}
public void fetchData(){
展示装载(“装载”);
StringRequest strReq=新的StringRequest(Request.Method.POST,
AppConfig.CHART,新的Response.Listener(){
@凌驾
公共void onResponse(字符串响应){
hideLoading();
试一试{
Log.d(标签“ini响应”+响应);
JSONObject对象=新的JSONObject(响应);
//datax的数据分类
JSONArray datacatagory=object.getJSONArray(“category”);
Log.d(标签,“分类”+数据分类);
JSONArray jdata1=object.getJSONArray(“数据”);
Log.d(标记“jdata”+jdata1);
JSONObject对象j1=jdata1.getJSONObject(1);
日志d(标签“obj”+obj1);
//datay的arr1
JSONArray arr1=obj1.getJSONArray(“数据”);
日志d(标签“arr”+arr1);
//数据1的arr2
JSONArray arr2=obj1.getJSONArray(“数据”);
日志d(标签“arr”+arr1);
//如何在java中将数据jsonarray转换为正则数组??
chartListener(数据Y、数据X、数据Y1);
}捕获(JSONException e){
e、 printStackTrace();
}
}
},new Response.ErrorListener(){
@凌驾
公共无效onErrorResponse(截击错误){
getToast(error.getMessage());
hideLoading();
}
}) {
@凌驾
受保护的映射getParams(){
返回getPOST(“拉巴鲁吉”);
}
};
addRequestQueen(strReq,TAG);
}
公共void图表侦听器(浮点数据Y[],字符串数据X[],浮点数据1[]{
条形图。设置说明(“确定”);
ArrayList ydata=新的ArrayList();
for(int i=0;i
我想从json数组中获取数据,我想为我的柱状图创建常规浮点数组。但是,如何将json数组更改为浮点数组呢
请帮帮我。

这个简单的方法应该对你有帮助。未经测试,但应能正常工作

private float[] fillData(JSONArray jsonArray){

    float[] fData = new float[jsonArray.length()];

    for (int i = 0; i < jsonArray.length(); i++) {
        try {
            fData[i] = Float.parseFloat(jsonArray.getString(i));
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

    return fData;
}

对不起,我还是不明白,请给我一个直接的例子来浮动数据[];您希望将哪些数据更改为浮点数据@SaidJSONArray arr1这是我想要更改为float datay[]的内容;请同时共享此日志“log.d(TAG,“arr”+arr1”);@Saidok。。这是我的日志。。[32.534,46.436,0,6.565,0,7,7.777,77.457,4,0,63.463,3.453,0,0,3.453,253,0,0,4.535,0,34.543,0,55,646,0,56.565,0,0,0,0,0]
JSONArray arr1 = obj1.getJSONArray("data");
float[] data = fillData(arr1);