Java 在Struts 2中使用jQuery文件上传插件附加额外属性的JSON响应

Java 在Struts 2中使用jQuery文件上传插件附加额外属性的JSON响应,java,json,servlets,struts2,jquery-file-upload,Java,Json,Servlets,Struts2,Jquery File Upload,我将jQuery文件上传插件与Struts 2一起使用 在我的操作中,我填充JSON对象“results”,这就是我希望操作返回的全部内容 但它也包括插件的文件对象,它是一个不完整的JSON,导致我的回调中的所有内容都中断。 (请注意,如果我没有填充我的结果对象,那么它将返回一个有效的JSON“文件”对象 是否有任何方法可以避免返回“文件”JSON响应?我只希望我的操作只返回“结果” 我的操作如下: org.json.JSONObject resp = new JSONObject();

我将jQuery文件上传插件与Struts 2一起使用

在我的操作中,我填充JSON对象
“results”
,这就是我希望操作返回的全部内容

但它也包括插件的
文件
对象,它是一个不完整的JSON,导致我的回调中的所有内容都中断。 (请注意,如果我没有填充我的
结果
对象,那么它将返回一个有效的JSON
“文件”
对象

是否有任何方法可以避免返回
“文件”
JSON响应?我只希望我的操作只返回
“结果”

我的
操作如下:

org.json.JSONObject resp = new JSONObject();            
JSONArray resultsArray = new JSONArray();
resp.put("results",resultsArray);
JSONObject result = new JSONObject();           
result.put("TestExcelStatus", "success");
result.put("ExcelName", this.fileFileName);
result.put("ExcelPath", fileToCreate.getPath());
resultsArray.put(result);
    

servletResponse.reset();
servletResponse.setHeader("Content-Type","application/json; charset=UTF-8");
servletResponse.setHeader("CacheControl","no-cache");
servletResponse.setHeader("Pragma","no-cache");
servletResponse.setHeader("Expires","-1");
//resp.writeJSONString(out);
resp.write(servletResponse.getWriter());
我希望下面的一行清除现有的JSON,只返回我的
“results”
JSON。但它仍然返回所有内容

servletResponse.reset();
所需的JSON响应必须如下所示,不带
“文件”


Struts操作总是返回一个结果代码,该代码由操作调用用于执行为此操作配置的结果。我怀疑该结果的类型为
json

如果操作返回
json
结果,则默认情况下
root
属性初始化为操作实例或模型(如果使用模型驱动的操作)

这意味着
root
对象的所有公共属性都将被序列化为JSON。您可以通过在属性上放置注释来控制此过程,或者使用参数配置结果以包括/排除结果中的某些属性


实际上,您只需配置结果的
root
参数即可返回序列化为JSON的对象。但由于您是直接编写响应,因此可以将操作返回的结果代码更改为
NONE
。这是由不返回任何结果的操作使用的。

不确定这是否为我会提供任何帮助。只是注意到绝对路径,路径值中没有结束双引号(“)。嗨,Rao,这不是问题,“绝对路径”实际上以结束引号(“)结尾。我想要一种方法来清除所有“文件”响应。如你所见,我只是添加“结果”JSONHi Roman中的对象,如何将操作返回的结果代码更改为NONE?struts.xml或其他地方是否有任何struts2属性需要更改?有任何示例代码吗?Alirght按照您的建议运行。只需将返回类型从“success”更改为“NONE”在struts2 action Return action.NONE中,它工作得很顺利,不仅返回了我想要的JSON,而且没有添加任何额外的内容。
servletResponse.reset();
{
    "results": [
        {
            "ExcelPath": "/usr/test/test.xlsx",
            "ExcelName": "test.xlsx",
            "TestExcelStatus": "success"
        }
    ] 
}