gpt4 book ai didi

java - 当我从 struts2 操作的 js 函数中获取 JSONArray 时,它是空的,我不明白为什么

转载 作者:太空宇宙 更新时间:2023-11-04 07:13:37 26 4
gpt4 key购买 nike

这是我的struts.xml:

<package name="ajax" namespace="/" extends="json-default">
<action name="checkMembers" class="com.mytest.action.InfoCheck">
<result name="success" type="json" >
<param name="includeProperties">myresult</param>
</result>
</action>

这是我的 Action 函数

 @Override
public String execute() throws Exception {
Student stu = new Student(); //stu has only two fields,name and passwd
stu.setName("cxg");
stu.setPasswd("ddd");
set.add(stu);
JSONArray jsonArray = new JSONArray();
jsonArray=JSONArray.fromObject(set);
myresult=jsonArray;
System.out.println(myresult.toString());
return SUCCESS;
}

println函数结果为[{"name":"cxg","passwd":"ddd"}]

但是当我在 $.ajax() 中得到它时,我无法得到结果,如果像

success:function(data){alert(JSON.stringify(data));},

警报结果为{"myresult":[]},但是,如果 myresult 是字符串类型,则警报将为**{"myresult":"[{\"name\":\"rxg\",\"passwd\":\"ddd\"}]"}**,我也不认为这是正确的,请帮我找出原因,以及如何获得正确的 jsonarray

最佳答案

  1. 当您使用struts2-json-plugin时,不需要转换为json。

  2. 操作中引用的所有对象/字段都会被插件自动转换为有效的 json。

  3. 只需删除 includeProperties从配置中,您将直接获得 Json 数组形式的集合。

  4. 如果您希望包含或排除某些字段,可以使用 includeProperties & excludeProperties

  5. Documentation - 它将帮助您更好地理解这个概念。

[编辑]

  1. 扩展 struts-default,除非您确实希望定义拦截器集、结果等。因此,将您的包配置更改为:

    <package name="ajax" namespace="/" extends="json-default,struts-default">

关于java - 当我从 struts2 操作的 js 函数中获取 JSONArray 时,它是空的,我不明白为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20296095/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com