将项目添加到JSON对象 - javascript

我有一种情况,我无法弄清楚该怎么做。我正在尝试将项目添加到从控制器发送的JSON对象中。

这是我的模型:

 public class Model1
 {
     public Model2 item {get;set;}
     public List<Model2> items {get;set;}
      //

并在页面中

 var jsonData = @Html.Raw(JSON.Encode(Model))

这给了我基本但空洞的模型。现在,在页面中,我填写了各个字段,并希望将项目添加到模型中以进行发布。所以:

 jsonData.item.field1 = $("#field1").val();

然后,我想添加到项目列表中,但是找不到任何有效的方法:

 jsonData.items.add(jsonData.item)

不起作用会引发错误。

 jsonData.items.push(jsonData.item);  

可以,但是我添加的每个项目都一样。这意味着当我添加第二个项目时,列表中有两个,但是它们具有相同的值。任何帮助,将不胜感激。

参考方案

众所周知,Javascript可以用作OO语言,并且可以在Javascript中动态创建类和对象。
据我了解,您正在使用以下代码在JavaScript中获取类属性

 var jsonData = @Html.Raw(JSON.Encode(Model))

当此JSON返回客户端时,它将被视为单个对象。

因此,您可以声明一个充当类的函数:

   function Model2(jsonData ) {
        this.name       = jsonData.name;
        this.discovered = jsonData.discovered;
    };

    var objModel2_1= new Model2(jsonData);

现在,
您可以声明一个数组以添加objModel2。

var arrModel2=[];
// add new objects

attModel.push(objModel2_1);   

最后,
 完成后,您可以使用现有的jsonData对象来填充

   jsonData.item=objModel2_1;
   jsonData.items=attModel;

希望这能够帮到你。

jQuery val函数在隐藏字段上不起作用? - javascript

这是我的HTML代码:<div style='display:none;' id='allformid'> <div> <form action='#'> <input type='text' name='name' …

Javascript和Python JSON-未定义变量 - javascript

例如,如果您具有以下JSON对象(删除python的分号):values = { a: 1, b: { c: 2, d: { e: 3 } }, f: 4, g: 5 }; 如果您尝试在JS中打印values,它将正常工作。但是在Python中,它将返回错误NameError: name 'a' is not defined,这意味着未定…

在PHP服务器上从HTML进行数据挖掘 - javascript

我使用jQuery创建了一个不错的库,该库在浏览器中运行,并且基本上完成了从各种html页面中挖掘任意数据的任务。我想将此库迁移到运行PHP的Apache服务器并在服务器端运行它。但是,我不知道与PHP兼容的可靠浏览器模拟器。最坏的情况是在PHP中再次实现整个过程。该解决方案将涉及:发送请求解析HTML实现基本功能以执行Java / jQuery标准执行的任…

PHP json_encode数组到javascript关联数组 - javascript

我有一些从PHP中读取的mysqli列。它正在完美地获取和回显。$results = mysqli_fetch_assoc(mysqli_query($conn, $querystring)); echo json_encode($results); //$results = {"title":"Sea Shells"…

从文本编辑器将文章存储在数据库中的最佳方法 - javascript

我想创建一个文本编辑器,但是当我完成文本的编辑后,如何将文章存储在数据库中时遇到问题。是否使用HTML代码存储它或将HTML标记转换为特殊符号,例如:<br>标记为[br],<span>text</span>到[span]text[/span]?非常感谢 :) 参考方案 在数据库中,您只需要存储特殊字符(如html等)的转…