我在jsp项目中使用json taglib。目前我用这段代码构建我的json对象:
<json:object prettyPrint="true">
<json:array name="categories" var="cat" items="${categories}">
<json:object>
<json:property name="id" value="${cat.getId()}" />
<json:array name="languages" var="lang" items="${cat.getCategorieslanguageses()}">
<json:object>
<json:property name="${lang.getLanguages().getShortname()}" value="${lang.getValue()}" />
</json:object>
</json:array>
</json:object>
</json:array>
</json:object>
getCategorieslanguageses()返回一组语言。 此代码提供以下输出:
{"categories": [
{
"id": 3,
"languages": [
{"nl": "Vlees"},
{"eng": "Meat"}
]
},
{
"id": 2,
"languages": [
{"eng": "Fish"},
{"nl": "Vis"}
]
}
]}
所以,这段代码效果很好,但我更喜欢的输出是:
{
"categories": [
{
"id": 2,
"languages": [
{
"nl": "Vis",
"eng": "Fish"
}
]
},
{
"id": 3,
"languages": [
{
"eng": "Meat",
"nl": "Vlees"
}
]
}
]
}
有人可以帮我用taglib json创建这个输出吗? 谢谢。
答案 0 :(得分:0)
这样做很少。
每prettyPrint="true"
或json:object
设置json:array
。
将页面,请求,会话或应用程序属性atg.taglib.json.prettyPrint
设置为true或false。
通过在web-app的web.xml文件中设置context-parm。
http://json-taglib.sourceforge.net/tutorial.html
编辑:起初我以为你是在格式化输出之后。
"languages": [
{"eng": "Fish"},
{"nl": "Vis"}
]
对此的解释是,您有一个名为languages
的数组,并且在此数组中包含两个对象,第一个对象具有名为eng
的属性,其值为Fish
。第二个对象具有名为n1
的属性,值为Fish
。
"languages": [
{
"eng": "Meat",
"nl": "Vlees"
}
]
对此的解释是,您有一个名为languages
的数组,并且在此数组中只包含一个对象。该对象有两个属性,一个名为eng
,值为Meat
,另一个名为n1
,值为Vlees
。
只是好奇心,不应该
<json:property name="${lang.getLanguages().getShortname()}" value="${lang.getValue()}" />
是
<json:property name="${lang.getLanguages().getShortname()}" value="${lang.getLanguages().getValue()}" />