日期:2014-05-17  浏览次数:20809 次

action 返回 json 的配置 <全部的分了>
XML code

<package name="listjson" extends="json-default">
        <action name="projectaction" class="projectAction">
            <result type="json">
                <param name="includeProperties">
                    success,
                    totalSize,
                    projects\[\d+\]\.id,
                    projects\[\d+\]\.name,
                    projects\[\d+\]\.assetses\[\d+\]\.id,
                    projects\[\d+\]\.assetses\[\d+\]\.name
                  </param>
            </result>
        </action>
        <action name="useraction" class="userAction">
            <result type="json">
                <param name="includeProperties">
                    success
                  </param>
            </result>
        </action>
    </package>



返回的json:
JScript code

{    
    "projects":[
        {"assetses":[
            {"id":1,"name":"什么设备"}
        ],
        "id":1,"name":"测试项目"},
        {"assetses":[
            {"id":2,"name":"什么设备"}
        ],"id":2,"name":"什么呢"},
        {"assetses":[
            {"id":9,"name":"什么5设备"},
            {"id":8,"name":"什么设备"},
            {"id":3,"name":"什么设备"},
            {"id":6,"name":"什么设备"},
            {"id":7,"name":"什么设备"}
        ],"id":3,"name":"测试项目3"},
        {"assetses":[
            {"id":4,"name":"什么设备"},
            {"id":5,"name":"什么5设备"}
        ],"id":4,"name":"测试项目5"}
    ],"success":true,"totalSize":4
}



我想显示 project的全部属性,用projects\[\d+\]\.* 不行哦 projects\[\d+\]\.\* 这样也不行
还有就是返回的assetses的排序是乱的,请问怎么弄啊?

------解决方案--------------------
学习了,这种方法以前试过,但是没有成功,后来看到另一个方法,就是把一个对象转化为json数据也是可以的,飞不了多大的事……
------解决方案--------------------
将对象直接转换成json对象不行么,你这种写法没看懂
------解决方案--------------------
我搞了了那么久,都没有用过楼主的方法。惭愧。。。
我一般在action封装自定义model,struts.xml就直接success了。
如果用我的办法,楼主可以自己构造合适的model吧,那样简单些,想要什么就来什么。
希望对您有所帮助。
------解决方案--------------------
是啊。直接对象化,通过json传值。不用在xml里这么麻烦吧。楼主这种方式还是头次见啊,惭愧~
------解决方案--------------------
属性再多点。。。就一个对象的属性就要看昏。。。。太繁琐了。。。用对象多方便啊。。。js里也可以.出属性啊。。。多方便。。。。
------解决方案--------------------
我也没见过这种写法。。
------解决方案--------------------
这种像JSON map 又觉得不对
JSONObject jsonobject = JSONObject.fromObject(json.toString());
Object pojo = JSONObject.toBean(jsonobject, People.class);
System.out.println(((People)pojo).getId());
我是这样转的,不知道能不能帮上你
------解决方案--------------------
JSONObject jsonObject = JSONObject.fromObject(subString);
Object pojo = JSONObject.toBean(jsonObject, People.class);
System.out.println(((People)pojo).getName());