使用FastJson将String类型转成Double[]类型

本文介绍如何在Java中将存储为String类型的矩阵数据转换为double[]类型,以适应JNI调用的需求。通过使用FastJson的parseObject方法,实现了从字符串到Double列表的转换,再进一步转换为double数组。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

        与算法同事进行jni调用的过程中出现一个问题,之前做的Dome中传输数据定死为double[]类型,后将Dome中的代码应用到实际项目中发现项目中存储的数据类型与之前同事定义的不一样,为String类型,因此需要将String转换成double[]类型

代码

        之前同事定死的交互数据:

double[] intrinsicMatrix= {4.849765167158351e+02,0,7.115376394147976e+02,3.290062519965750e+02,2.028886447588004e+02};

        实际存储的的交互数据:

String intrinsicMatrix= "[4.849765167158351e+02,0,7.115376394147976e+02,3.290062519965750e+02,2.028886447588004e+02]";

        转换代码:

String intrinsicMatrixStr= "[4.849765167158351e+02,0,7.115376394147976e+02,3.290062519965750e+02,2.028886447588004e+02]";

List<Double> intrinsicMatrixList = JSON.parseObject(intrinsicMatrixStr, new TypeReference<List<Double>>(){});
Double[] intrinsicMatrix = new Double[intrinsicMatrixList.size()];
intrinsicMatrixList.toArray(intrinsicMatrix);

//输出:Double[] intrinsicMatrix = {484.9765167158351,0,711.5376394147976,329.0062519965750,202.8886447588004}

        补充:

                 1、此处使用阿里的FastJson的泛型工具类;

                 2、Double中的"e+02"的意思是在前面小数的情况下乘以10的二次方,同理"e+03"就是乘以10的三次方

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值