在 Struts 1 中将 Java bean 转换为 JSON 字符串

问题描述 投票:0回答:1

我想使用 Struts 在 JSP 页面中呈现内容。

我有 Java Bean 类实现

Serializable
:

public class MyPOJO implements Serializable {
    String name;
    int value;
    // A lot of other members, but all String or int
    // Getters and setters
}

我的表单类包含 MyPOJO 列表:

public class MyForm extends ActionForm {
    private List<MyPOJO> results = new ArrayList<MyPOJO>();
    // Getter and setter
}

还有一个继承

DispatchAction
的类,将
MyForm
对象传递到页面上。

在我使用的JSP页面上:

<logic:notEmpty name="myForm" property="results">
var jsonData = ${myForm.results};
</logic:notEmpty>

生成的 JSP 文件中的最终结果是一个

MyPOJO
对象列表:

var jsonData = [com.package.MyPOJO@174aee5, ...]

我想知道,在不重写

toString()
类中的
MyPOJO
方法的情况下,是否有其他方法可以直接将其转换为 JSON 字符串?我还创建了一个 REST 服务,返回
MyPOJO
列表,没有
toString()
方法。它已经可以显示 JSON 字符串。我想知道为什么它对 JSP form bean 不起作用?

java json javabeans struts struts-1
1个回答
0
投票

因为你没有重写

ArrayList
toString()
方法。您的属性是一个必须序列化为 JSON 的集合。您可以扩展
ArrayList
并覆盖该方法,或者使用本机
JSONArray
或已被覆盖并返回 JSON 字符串的
JSONObject
toString()

© www.soinside.com 2019 - 2024. All rights reserved.