ArrayList>转换为JSON对象的Java代码

28 浏览
0 Comments

ArrayList>转换为JSON对象的Java代码

我想要创建一个如下的字符串。

[{ "Name":"David",

"Age":"30"

},

{"Name":"Max",

"Age":"20"

}

]

我们如何使用ArrayList>和Java中的JSON来创建这个字符串?

0
0 Comments

问题的出现原因:

问题是如何将一个包含多个HashMap的ArrayList转换为JSON对象。在给定的示例中,outer是一个ArrayList,其中包含两个HashMap,每个HashMap都包含"Name"和"Age"作为键和相应的值。需要将这个ArrayList转换为JSON对象。

解决方法:

在给定的示例中,使用了一个自定义的JSON库来解决这个问题。该库提供了Json.serialize()方法,可以将一个Java对象(包括ArrayList和HashMap)转换为JSON字符串。通过调用该方法,将outer对象转换为一个JSON字符串,最终输出为"[{"Age": "30", "Name": "David"}, {"Age": "20", "Name": "Max"}]"。

需要注意的是,该解决方法依赖于第三方的JSON库,即My JSON library。因此,在使用该方法之前,需要先导入并引用该库。

以下是解决问题的代码示例:

import io.nayuki.json.Json;
import java.util.ArrayList;
import java.util.HashMap;
public class Main {
    public static void main(String[] args) {
        ArrayList> outer = new ArrayList<>();
        HashMap inner = new HashMap<>();
        inner.put("Name", "David");
        inner.put("Age", "30");
        outer.add(inner);
        inner = new HashMap<>();
        inner.put("Name", "Max");
        inner.put("Age", "20");
        outer.add(inner);
        String jsonText = Json.serialize(outer);
        System.out.println(jsonText);
    }
}

运行以上代码,将输出以下JSON字符串:

[{"Age": "30", "Name": "David"}, {"Age": "20", "Name": "Max"}]

这样就成功地将ArrayList>对象转换为了JSON对象。

0
0 Comments

在Java中,将ArrayList>转换为JSON对象可能会遇到问题。解决这个问题的方法是使用Jackson Mapper库来实现转换。

首先,我们可以通过阅读一些关于Jackson Mapper的教程来了解如何使用它。可以通过访问"http://www.tutorialspoint.com/jackson/"来获取相关教程。

在使用Jackson Mapper的过程中,可以按照以下方式编写代码来进行转换:

ObjectMapper mapper = new ObjectMapper();

jsonString = mapper.writeValueAsString(listOfMap);

以上代码中,ObjectMapper类是Jackson库的核心类之一,它提供了将Java对象转换为JSON字符串的功能。通过调用mapper.writeValueAsString()方法,可以将ArrayList>对象转换为JSON字符串。

通过上述方法,我们可以解决将ArrayList>转换为JSON对象的问题。

0
0 Comments

问题出现的原因是希望将一个包含多个HashMap的ArrayList转换为JSON对象,但是在尝试转换时遇到了问题。

解决方法是使用JSONArray和JSONObject来构建JSON对象。首先,创建一个空的JSONArray对象。然后,遍历ArrayList中的每个HashMap对象。对于每个HashMap对象,创建一个新的JSONObject对象,并遍历其中的每个键值对。将键值对中的键作为JSON对象的键,将值作为JSON对象的值。将每个JSONObject对象添加到JSONArray中。最后,将JSONArray对象转换为字符串并返回。

以下是解决该问题的代码示例:

public String listmap_to_json_string(List> list) {
    JSONArray json_arr = new JSONArray();
    for (HashMap map : list) {
        JSONObject json_obj = new JSONObject();
        for (Map.Entry entry : map.entrySet()) {
            String key = entry.getKey();
            String value = entry.getValue();
            try {
                json_obj.put(key, value);
            } catch (JSONException e) {
                e.printStackTrace();
            }
        }
        json_arr.put(json_obj);
    }
    return json_arr.toString();
}

以上代码将ArrayList中的每个HashMap对象转换为一个JSONObject对象,并将所有JSONObject对象添加到JSONArray中。最后,将JSONArray对象转换为字符串并返回。

这样,我们就可以将一个包含多个HashMap的ArrayList转换为JSON对象了。

0