簡體   English   中英

在 Java 中的 JSONArray 中進行計算

[英]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.valueCounter2.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM