[英]do calculation inside JSONArray in Java
我有一個簡單的問題,但無法解決它,因為我不太擅長算法! 我有一個這種形式的 JSONArray:
[{"values":[{"time":1434976493,"value":"50"},
{"time":1434976494,"value":"100"}],"counter":"counter1"},
{"values":[{"time":1434976493,"value":"200"},
{"time":1434976494,"value":"300"}],"counter":"counter2"},
{"values":[{"time":1434976493,"value":"400"},
{"time":1434976494,"value":"600"}],"counter":"total"}]
我想要做的是獲取計數器 1 和計數器 2 的整數值,然后將它們除以總計數器並將它們放入列表或數組中。 當然,我希望總計數器保持不變! 所以計算將是Counter1.value/total.value
, Counter2.value/total.value
所以例如計數器 1 將是這樣的:
{"values":[{"time":1434976493,"value":"50/400"},{"time":1434976494,"value":"100/600"}],"counter":"counter1"}
這是一個未完成的嘗試:
(鑒於我有可以迭代的計數器列表:)
int index= counters.indexOf("total");
JSONObject rec = array.getJSONObject(index);
然后我得到了這個總計數器:
{"values":[{"time":1434976493,"value":"400"},
{"time":1434976494,"value":"600"}]
不知道下一步是什么?!
這就是我要做的。 將<JSON STRING HERE>
替換為您要解析的 JSON 字符串:
ArrayList<ArrayList<Integer>> resultList = new ArrayList<ArrayList<Integer>>();
JSONArray arr = new JSONArray(<JSON STRING HERE>);
for(int i = 0; i < arr.length(); i ++)
{
JSONObject obj = arr.getJSONObject(i);
JSONArray valueArray = obj.getJSONArray("values");
ArrayList<Integer> dataList = new ArrayList<Integer>();
resultList.add(dataList);
for(int j = 0; j < valueArray.length(); j ++)
{
JSONObject valueObject = valueArray.getJSONObject(j);
Integer value = valueObject.getInt("value");
dataList.add(value);
}
}
結果是一個名為 resultList 的整數列表列表。 祝你好運!
請記住,您必須將整個事情包裝在 try 中,catch 也是如此。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.