将数组列表转换为json对象字符串

conversion of array list to json object string

本文关键字:json 对象 字符串 转换 数组 列表      更新时间:2023-09-26

我有一个模型类方法,它返回一个包含所有注册用户详细信息的对象列表。我想获取all()方法重新搜索的列表,并将数据转换为JSON对象,然后像字符串一样将其传递给视图。如何将此数组列表转换为JSON对象?

我无法通过以下方式做到这一点:

ObjectMapper mapper = new ObjectMapper();
JSONObject json = new JSONObject();
JsonNodeFactory jsonnode = JsonNodeFactory.instance;
ObjectNode result = new ObjectNode(jsonnode);
for (int i = 0; i < list.size(); i++) {
    json.put(list.get(i).fname, list.get(i));
    System.out.println(json.get("fname"));
}
@Entity
class Mydata extends Model {
    @Id
    public Long Id;
    public String fname;
    public String lname;
    public String city;
    public String state;
    /****************** READ/select OPERATION *****************/
    public static Finder < Long, Mydata > finder = new Finder(Long.class, Mydata.class);
    public static List < Mydata > all() {
        return finder.all();
    }
    public static void createuser(Mydata user) {
        user.save();
    }
}

要将ArrayList转换为Json,只需从以下位置下载开源Json实用程序:http://json.org/java/或来自此处的Jar文件

只要做:

JSONArray jsonAraay = new JSONArray(your_array_list);

就是

注意:您的POJO/MODEL类中应该有setter/getter来将arraylist转换为json

不用担心org.json,完全使用Jackson:

// list is a List<MyData>
final ObjectMapper mapper = new ObjectMapper();
final Map<String, MyData> map = new HashMap<>();
for (final MyData data: list)
    map.put(data.fname, data);
final JsonNode json = mapper.valueToTree(map);

你可以像这里的其他人建议的那样使用各种第三方库,或者只使用Play自己的简化方法(在play.libs.Json中找到),它可以与Jackson对象一起使用,但它被集成到框架中,需要使用的代码要少得多,例如:

JsonNode myJsonNode = Json.toJson(MyListObject);将List转换为JsonNode对象,然后使用类似String jsonResult = Json.stringify(myJsonNode);的东西将其转换为字符串表示。

如果您在模板中使用JSON,请不要忘记将其封装在类似@Html(myJsonString)的东西中,这样它就不会转义任何内容。否则,如果您只是将纯JSON输出到浏览器,一个简单的return ok(jsonResult);将起作用,因为Play将自动设置内容类型。

参考链接:http://www.playframework.com/documentation/api/2.0/java/play/libs/Json.html

您看过这个吗:http://www.json.org/javadoc/org/json/JSONObject.html#valueToString(java.lang.Object)

JSONObject.valueToString(<<your list of custom object>> OR <<objects>> OR <<map>>)

工作得很好。。。如果你感兴趣的话,这个库上还有其他一些方法。。。。