java 如何从哈希Map数据填充JSON?

wnavrhmk  于 2023-01-01  发布在  Java
关注(0)|答案(2)|浏览(128)

我用Java处理这些数据:

HashMap<String, String> currentValues = new HashMap<String, String>();
String currentID;
Timestamp currentTime;
String key;

我需要把它转换成JSON,但是我不知道怎么转换。目前我认为这是最好的方法:

JSONObject dataset = new JSONObject();
dataset.put("date", currentTime);
dataset.put("id", currentID);
dataset.put("key", key);

JSONArray payload = new JSONArray();
payload.add(dataset);

我不知道我该怎么用散列表来做这个,我知道它大概是这样的:

JSONObject data = new JSONObject();
Iterator it = currentValues.entrySet().iterator();
while (it.hasNext()) {
    Map.Entry pair = (Map.Entry)it.next();
    
    data.put("type", pair.getKey()) ;
    data.put("value", pair.getValue()) ;
    it.remove(); // avoids a ConcurrentModificationException
}

但确切的语法和我如何将它与其他数据一起添加,我无法计算。

5fjcxozz

5fjcxozz1#

您可以像下面这样创建JSONObject,然后将其添加到有效负载中。

JSONObject dataset = new JSONObject();
dataset.put("date", currentTime);
dataset.put("id", currentID);
dataset.put("key", key);

JSONArray payload = new JSONArray();
JSONObject data = new JSONObject();

Iterator it = currentValues.entrySet().iterator();
while (it.hasNext()) {
Map.Entry pair = (Map.Entry)it.next();
data.put("type", pair.getKey()) ;
data.put("value", pair.getValue()) ;
it.remove(); // avoids a ConcurrentModificationException
}
JSONArray mapArray = new JSONArray();
mapArray.add(data);
dataset.put("data", mapArray);
payload.add(dataset);
xienkqul

xienkqul2#

只需迭代Map的条目,将“数据”对象放入数组:

for (Map.Entry<String, String> e : currentValues) {
    JSONObject j = new JSONObject()
                     .put("type", e.getKey())
                     .put("value", e.getValue());
    payload.add(j);
}

然后将数组放入结果json:

dataset.put("data", payload);

相关问题