如何将多维json转换为嵌套的POST字段
How to convert multi-dimensional json to nested POST fields
是否有像这样转换多维JSON的插件或函数:
{
"hello" : {
"foo" : "bar",
"arr" : ["a", "b", "c"]
},
"another": {
"go" : {
"very" : {
"deep" : 1
}
}
}
}
以这种格式进行数组
[
{"key" : "another[go][very][deep]", "value" : "1"),
{"key" : "hello[arr][]", "value" :a"),
{"key" : "hello[arr][]", "value" :b"),
{"key" : "hello[arr][]", "value" :c"),
{"key" : "hello[foo]", "value" :bar")
]
还是我需要自己写?如果我错了,请原谅我,但当jQuery使ajax调用输入JSON必须转换为上述格式的数据?
我试图创建函数/插件,创建表单与隐藏字段发送到<iframe>
基本上就是这样的函数但它允许多维参数
我创建了自定义函数:
$.postirify = function(obj) {
var tmp = $.param(obj).split("&");
console.log(tmp);
var result = [];
$.each(tmp, function(i, v) {
var kv = v.split("=");
result.push({
key: decodeURIComponent(kv[0]),
value: decodeURIComponent(kv[1])
});
});
return result;
}
演示:http://jsfiddle.net/9wL9zz8L/
在结果中,我可以创建包含可以提交给<iframe>
的隐藏数据的表单
$.fn.hiddenForm = function(data) {
var $form = $(this);
$form.html("");
var p = $.postirify(data);
$.each(p, function(i, kv){
var $input = $('<input/>');
$input.attr("type", "hidden");
$input.attr("name", kv.key);
$input.val(kv.value);
$form.append($input);
});
return $form;
};
$('#my-form').hiddenForm($.postirify(my_data)).submit();
相关文章:
- 用嵌套函数和默认函数定义函数
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 可以简化嵌套的延迟Q Promises解析吗
- 用于搜索的聚合物嵌套绑定
- 如何使用javascript获取嵌套对象中所有子对象的单个属性
- d3中堆栈函数和嵌套函数之间的差异
- 如何打印嵌套对象的所有值
- JavaScript 中的嵌套函数和 “this” 关键字
- 设置嵌套对象属性的更好方法
- querySelector/getElementByClassName嵌套项的顺序
- 猫鼬在特定记录中查找嵌套记录
- 访问嵌套JSON对象的键,其中键是动态的
- D3嵌套组作为x轴
- Ionic和angularjs嵌套步骤应用程序
- 从多维嵌套json数组创建下拉列表
- 默认情况下折叠和展开嵌套列表
- 如何将多维json转换为嵌套的POST字段
- Post javascript对象与嵌套属性到MVC
- Angular 2 -通过HTTP Post请求将数据添加到嵌套json中
- 向POST请求传递一个嵌套对象