java - Json 序列化为带有嵌套 List<pojo> 属性的 java pojo

标签 java jquery json spring-mvc

下面是我的代码尝试通过 JQuery Ajax 调用 Spring MVC Controller 来发布 Json 序列化对象(具有其他 pojo 列表的 java pojo)。

从服务器收到错误请求错误。

当从 Json 对象中删除 modalForm 数据时,MainPojo 数据在服务器端正确接收。

HTML代码

   Fisrt form
   ------------- 
    <form id="mainForm">
           .....
    </form>

    Form in the modal
    -----------------
    <form  id="modelform" ..>
         <div id="row"> 
    <input type="text" id="subject" />
    <input type="text" id="max" />
    <input type="text" id="min" />
      </div>
     <div id="row"> 
    <input type="text" id="subject" />
    <input type="text" id="max" />
    <input type="text" id="min" />
     </div>
         ............. 
    </form>}

Jquery

          var mainObject = $('#mainForm').serializeObject();

          var modelObject = $('#modelform').serializeObject();

          mainObject.marks = modelObject;

Json(预期)

          {
            "name": "Some Name",
             "age": "10",
             "marks": [
               {
                 "subject": "maths",
                 "max": "20",
             "min":"12"
                },
               {
                 "subject": "english",
                 "max": "20",
             "min":"12",
                }
              ]
          }

Json(上面代码的实际输出)

           {
             "name": "Some Name",
              "age": "10",
              "marks": [
                        {
                         "subject": "maths",
                         "subject": "english"
                         },
                         {
                          "max": "20",
                       "max":"20",
                          },
                      {
                       "min": "12",
                       "min":"12"
                       }
                          ]
               }

                 //Ajax call
                 $.ajax({
                       url: '/save',
                   type: 'POST',
                   contentType: 'application/json',
                   mimeType: 'application/json',
                   data : JSON.stringify(mainObject),
                   dataType: 'json',
                   success: function(data) {
                      alert(data.msg);
                   },
                   error:function (xhr, ajaxOptions, thrownError) {
                      alert('Technical error occured');
                   }
           });

Java Pojo 的

          public class MainPojo {

            private String name;
            private String age;            
                private Lists<marks>
                ..................
          }

          public class ModelPojo {

            private String subject;
            private String maxMarks;
            private String minMarks;

                .....................
            }

Controller 方法

@RequestMapping(value = "save", headers = "Accept=application/json",
                method = RequestMethod.POST)
public @ResponseBody String save(@RequestBody final  MainPojo  mainPojo) {

} 

请帮我找出问题所在。

谢谢。

最佳答案

像这样修改html文本

     <form id="mainForm">
    <input name="name" type="text" value="Some Name">
    <input name="age" type="text" value="20">
     </form>
     <form  class="modelform">

    <input type="text" value="subject" name="subject"/>
    <input type="text" value="max" name="max"/>
    <input type="text" value="min" name="min"/>
      </form>
     <form  class="modelform">
    <input type="text" value="subject" name="subject" />
    <input type="text" value="max" name="max"/>
    <input type="text" value="min"  name="min"/>
   </form>

然后编写javascript代码来分配对象值

<script>
    var mainObject = $('#mainForm').serializeObject();
    var modelObject = [];
     $('.modelform').each(function(o){
        modelObject.push($(this).serializeObject());
    })
    mainObject.marks = modelObject;
</script>

关于java - Json 序列化为带有嵌套 List<pojo> 属性的 java pojo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19819390/

相关文章:

java - ConcurrentHashMap 与同步

java - 如何创建匿名类对象的数组或集合

jQuery 数据表 : how to stop it from adding 'odd' or 'even' to the class name

javascript - 导航栏 - 为 ul 制作动画

javascript - 如何从nodejs中的Spotify API获取播放列表的每一页

arrays - Laravel - 将字段从数组传递到 JSON

java - 如果使用 LinkedList add 方法修改底层列表,iterator.next 是否也会被修改?

android - Json不能转int

javascript - 如何使用 ng-repeat 迭代使用动态键关联的数组

java - 具有多个 SELECT NEW 语句的 jpa 构造函数表达式