var music_arr = [
    {
        "id":"1",
            "song":"黑色毛衣",
            "singer":"周杰伦",
            "special":"《专辑名称》",
            "url":"D:/MusicDownLoad/Tonya Mitchell-Stay.mp3",
            "lyric":
            {
                "type":"com",
                "info":" 这里是歌词"            },
                "stat":"3"
    }
    ,
    {
        "id":"2",
            "song":"白色风车2",
            "singer":"周杰伦",
            "special":"《专辑名称》",
            "url":"D:/MusicDownLoad/Super Junior M-Super Girl.mp3",
            "lyric":
            {
                "type":"no",
                "info":" 歌词"            },
                "stat":"0"
    }];music_arr里的"song":等这些值我需要从后台取得 可能有好几首歌曲这是音乐播放器页面里存放歌曲信息的 html 我这里的歌曲信息我要从后台取到,可以是Sevlet或者Struts2 等等 后台给的可以是一个数组或者一个List 然后在页面里可以取到这样信息,然后另外一个页面提交请求后 这里可以再添加一首歌曲的信息
原来的那些信息要继续存在   好像是用JSON还是什么比较好吧 
http://topic.csdn.net/u/20100318/00/4a2d7cf8-bcfc-4bfa-bac4-c184231636dc.html?92927
这个是相同的帖子 你如果能正确的回答问题的话 请去这里留言 我把200分都给你

解决方案 »

  1.   

    你首先需要建立一个DTO 叫SongDTO  属性名字和你的json串名字一样,然后lyric是一个List
    这个List放的 比如叫lyricDTOMap map = new HashMap();
    map.push("lyric",lyricDTO.class)
    JSONArray json = JSONArray。fromObject(“music_arr ”);
    JSONArray。toCollection(json,SongDTO 。class,map);
    这样就可以了,
    没有json包 大小写可能存在问题
      

  2.   


    我不会JSON  你能不能帮我具体的写下 包括后台代码和前台的代码
      

  3.   

    List<SongDTO> songList = (List<SongDTO>)JSONArray。toCollection(json,SongDTO 。class,map);最后一句话可以强转
      

  4.   

    前台什么都不用写啊  就是将你的music_arr参数传入到后台就可以了
    后台 String music_arr = (String)request.getParameter("music_arr");
    Map map = new HashMap();
    map.push("lyric",lyricDTO.class)
    JSONArray json = JSONArray。fromObject(“music_arr ”);
    List<SongDTO> songList = (List<SongDTO>)JSONArray。toCollection(json,SongDTO 。class,map);public class SongDTO {
    private String id;
    private String song;
    ......
    private List<Lyric> lyricList;
    }public class LyricDTO {
    private String type;
    private String info;
    private String stat;}加上get和set方法
    这样就可以了饿
      

  5.   

    可以告诉我下     前台什么都不用写啊 就是将你的music_arr参数传入到后台就可以了
    要怎么把JS的内容传给后台啊 谢谢了
      

  6.   


    /**                                                          
    * 描述 : <List转换为JSON>. <br> 
    *<p>                                                 
                                                                                                                                                                                                           
    * @param req 
    * @param response 
    * @throws ServletException 
    * @throws IOException                                                                                          
    */ 
    private void ListToJson(HttpServletRequest req, HttpServletResponse response)throws ServletException, IOException{ 
      JSONArray jsonArray = null;   
      People people = null; 
      Phone phone = null; 
      List<People> list = new ArrayList<People>(); 
            try {    
             for(int i =0;i<3;i++){ 
              people = new People(); 
              phone = new Phone("135"+i,"138"+i); 
              people.setAge(i); 
              people.setPhone(phone); 
              list.add(people); 
             } 
             jsonArray = JSONArray.fromObject(list);    //System.out.println(jsonArray.toString()); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
      this.print(response, jsonArray.toString(1,1)); 

      

  7.   

    return data(ajax.html):[
        {
            "id":"1",
                "song":"黑色毛衣",
                "singer":"周杰伦",
                "special":"《专辑名称》",
                "url":"D:/MusicDownLoad/Tonya Mitchell-Stay.mp3",
                "lyric":
                {
                    "type":"com",
                    "info":" 这里是歌词"            },
                    "stat":"3"
        }
        ,
        {
            "id":"2",
                "song":"白色风车2",
                "singer":"周杰伦",
                "special":"《专辑名称》",
                "url":"D:/MusicDownLoad/Super Junior M-Super Girl.mp3",
                "lyric":
                {
                    "type":"no",
                    "info":" 歌词"            },
                    "stat":"0"
        }]
    js:    $.get("ajax.html",function(data){
            var d=eval(data);
            for(var i=0;i<d.length;i++)
                alert(d[i].song);
        });
      

  8.   

    or:
    html:<script type="text/javascript">
    var music_arr = [
        {
            "id":"1",
                "song":"黑色毛衣",
                "singer":"周杰伦",
                "special":"《专辑名称》",
                "url":"D:/MusicDownLoad/Tonya Mitchell-Stay.mp3",
                "lyric":{
                    "type":"com",
                    "info":" 这里是歌词"
                },
                "stat":"3"
        },
        {
            "id":"2",
                "song":"白色风车2",
                "singer":"周杰伦",
                "special":"《专辑名称》",
                "url":"D:/MusicDownLoad/Super Junior M-Super Girl.mp3",
                "lyric":{
                    "type":"no",
                    "info":" 歌词"
                },
                "stat":"0"
        }
    ];
    </script>
    js:   $.get("ajax.html",function(data){
            document.write(data);
            for(var i=0;i<music_arr.length;i++)
                alert(music_arr[i].song);
        });
      

  9.   

    用form提交的话
    在form里面写 一个隐藏域
    <input type="hidden" name="music_arr" id="music_arr ">
    js提交方法中写
    //
    document。getElementById(“music_arr ”)。value = music_arr;
    //music_arr是你写的串
    然后document.forms[0].submit();在后台按我给你的  ok!