gpt4 book ai didi

java - 如何在 Struts 2 jQuery 中访问嵌套的 JSON 响应 tag

转载 作者:行者123 更新时间:2023-12-01 04:33:54 27 4
gpt4 key购买 nike

我正在使用 Struts2 及其 jQuery 插件开发一个 Web 应用程序。我的<sj:select>标签如下所示,当我得到非嵌套 JSON 响应时,它工作得很好:

<s:url id="remoteurl" namespace="/XYZ" action="ZXY"/>
<sj:select
href="%{remoteurl}"
id="abc"
onChangeTopics="dosomething"
name="cde"
list="List"
label="Customer" />

从我的 Controller 中,我使用 AJAX 调用得到类似以下 JSON 响应的内容。

{"List1":null,"Object":{"List2":null,"Var1":null,"List3":{"8":"a","9":"b","10":"c","14":"d","15":"e"}}

在我的<sj:select>我想要List3 ,这是一个Object 。但使用上面显示的标签 list=Object.List3它不起作用。

最佳答案

它不起作用,因为首先值 Object.List3 list 属性中的属性用于计算 OGNL 表达式,失败时将其用作 JSON 数组的名称(如果使用映射,则为 JSON 对象)。

但是标签<sj:select>使用该值作为根 JSON 对象,它不会导航到 JSON 对象的 JSON 数组,因为它没有使用 JS 中的任何对象图导航库。要使其正常工作,您需要添加 root JSON结果中的参数

@Action(value="ZXY", results=@Result(type="json", params = {"root","Object"}))  

然后使用JSON注释指定name如果你想保留这个名字

@JSON(name = "Object.List3")
public Map<Integer,String> getList3() {
return list3;
}

那么 JSON 字符串将如下所示

{"List2":null,"Var1":null,"Object.List3":{"8":"a","9":"b","10":"c","14":"d","15":"e"}} 

Map<Integer,String>而不是List<Object>因为它对应于您的 JSON 字符串,并且它不是列表。

关于java - 如何在 Struts 2 jQuery 中访问嵌套的 JSON 响应 <sj :select> tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17594751/

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