gpt4 book ai didi

java - 如何从 float[]、JSONArray 解析中获取数据?

转载 作者:太空宇宙 更新时间:2023-11-04 13:50:32 26 4
gpt4 key购买 nike

我收到 JSONArray 形式的响应,如下所示:

"["37:0.00",
"60:23.50:55.00:22.22:52.00:192.55:20.00"
"61:0.00"]";

在这 3 行中,前几个数字 (37、60、61) 是 ID(类型 int)。这些特定行的其他数字是值(类型float)。如何将特定 ID 的这些值获取到 float[]

这是我的代码:

public void setValuesFromResponse(String response) {
deviceList = database.getDevices();
List<float[]> parsedData = parse(response);
Log.i("setValFromResp: ", "parsedData --> DONE");

for (int i = 0; i < parsedData.size(); i++) {
int parsedDeviceId = (int) parsedData.get(i)[0]; //get ID
float[] values = parsedData.get(i)[1];
//how to check if there is another value in another index (for this exmaple index 2
}
}

这是解析方法:

public List<float[]> parse(String json) 
{
List<float[]> list = new ArrayList<>();
try {
JSONArray array = new JSONArray(json);
for (int i = 0; i < array.length(); i++) {
String dataByDevice = array.getString(i);
String[] values = dataByDevice.split(":");
list.add(new float[values.length]);
for (int j = 0; j < values.length; j++) {
list.get(i)[j] = Float.parseFloat(values[j]);
}
}
return list;
}

感谢您的帮助。

最佳答案

“//如何检查另一个索引中是否有另一个值(对于此示例索引2”,您可以添加另一个内部循环来迭代数组。

for (int i = 0; i < parsedData.size(); i++) {
int parsedDeviceId = (int) parsedData.get(i)[0]; //get ID
float[] values = parsedData.get(i)[1];
//how to check if there is another value in another index (for this exmaple index 2
}

像这样:

for (int i = 0; i < parsedData.size(); i++) {
int parsedDeviceId = (int) parsedData.get(i)[0]; //get ID
for(int j = 1; j < parsedData.get(i).length; j++)
{
//process parsedData.get(i)[j] here
}
}

关于java - 如何从 float[]、JSONArray 解析中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30332850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com