appendgrid - 将网格数据作为JSON对象而不是常规序列化

时间:2014-06-24 13:30:54

标签: javascript jquery

在此处列出的示例中,如何将网格数据作为JSON?

Reference Link

JQuery Serialize可以工作,但如果我能够将每一行作为JSON对象,那么我会解析数据。

3 个答案:

答案 0 :(得分:3)

您可以使用.appendGrid('getAllValue')函数将网格数据作为javascript对象获取。您可以直接解析它们或将它们编码为JSON。

示例:

var data = $('#tblAppendGrid').appendGrid('getAllValue') 返回一个数组,其中每个元素都是来自一个表行的数据作为对象。

data[0]将是第一行。

JSON.stringify(data)将是一个包含表格中所有数据的JSON字符串

答案 1 :(得分:0)

您可以在运行时创建元素,根据JSON对象长度,您必须为每个或简单的for循环使用,并将json数据迭代到最长。

喜欢:

 for(var i=0; i<=json_object.length; i++) {
 console.log(json_object.user[i].name);  var ele_block =
 document.createElement('div'); $(ele_block).addClass("block"+i);
 ele_block.appendChild(block_name);
 $("#name_block").append(ele_block);         
 }

创建一个元素,用于添加新生成的数据。

<div id="name_block"></div>

答案 2 :(得分:-1)

您可以使用JQuery Serialize来获取seriesed字符串,然后使用帮助函数uri_decoder将其解码为Object。

var decode, seriesed, uri_decoder;

seriesed = "a=1&b=2&c=3&d=4&e=5";

uri_decoder = function(component_unpacker) {
  if (component_unpacker == null) {
    component_unpacker = (function(s) {
      return s;
    });
  }
  return function(str) {
    var d, i, j, k, len, ref, ref1, ref2, s, v;
    d = {};
    ref1 = (ref = str.match(/[^?=&]+=[^&]*/g)) != null ? ref : [];
    for (i = 0, len = ref1.length; i < len; i++) {
      s = ref1[i];
      ref2 = s.match(/([^=]+)=(.*)/), j = ref2.length - 2, k = ref2[j++], v = ref2[j++];
      d[decodeURIComponent(k)] = component_unpacker(decodeURIComponent(v));
    }
    return d;
  };
};

decode = uri_decoder();

console.log(json(decode(seriesed)));

尝试这些代码here

此工具由this项目提供。