把Javascript 对象转换为键值对连接符字符串的方法总结
|
Do you know a fast and simple way to encode a Javascript Object into a No |
|||||||||||||||||
|
|
like this?
Edit: this one also converts recursive objects (using php "array" notation for the query string)
|
|||||||||||||||||||||
|
|
jQuery has a function for this, example:
|
|||||||||||||||||||||
|
Edit: I like this one-liner, but I bet it would be a more popular answer if it matched the accepted answer semantically:
|
|||||||||||||||||||||
|
|
Here's a one liner in ES6:
|
|||||||||||||||||||||
|
With Node.js v6.6.3
Reference: https://nodejs.org/api/querystring.html |
|||||||||||||
|
|
A small amendment to the accepted solution by user187291:
Checking for hasOwnProperty on the object makes JSLint/JSHint happy, and it prevents accidentally serializing methods of the object or other stuff if the object is anything but a simple dictionary. See the paragraph on for statements in this page: http://javascript.crockford.com/code.html |
|||
|
Do you need to send arbitrary objects? If so, GET is a bad idea since there are limits to the lengths of URLs that user agents and web servers will accepts. My suggestion would be to build up an array of name-value pairs to send and then build up a query string:
|
|||
|
use JSON. take a look at this question for ideas on how to implement. |
|||||||||||||||||
|
|
Here's the coffeescript version of accepted answer. This might save time to someone.
|
|||||
|
Rails / PHP Style Query BuilderThis method converts a Javascript object into a
Example Usage:
|
|||||
|
|
I suggest using the URLSearchParams interface:
|
|||||
|
|
If you want to convert a nested object recursively and the object may or may not contain arrays (and the arrays may contain objects or arrays, etc), then the solution gets a little more complex. This is my attempt. I've also added some options to choose if you want to record for each object member at what depth in the main object it sits, and to choose if you want to add a label to the members that come from converted arrays. Ideally you should test if the thing parameter really receives an object or array.
|
|||||
|
|
Here's a concise & recursive version with Object.entries. It handles arbitrarily nested arrays, but not nested objects. It also removes empty elements:
E.g.:
|
||||
|
ok, it's a older post but i'm facing this problem and i have found my personal solution.. maybe can help someone else..
|
|||
|
Addition for accepted solution, this works with objects & array of objects:
Also have added objName if you're using object parameters like in asp.net mvc action methods. |
|||
|
A little bit look better
|
||||
|
This one skips null/undefined values
|
|||
|
The above answers fill not work if you have a lot of nested objects. Instead you can pick the function param from here - https://github.com/knowledgecode/jquery-param/blob/master/jquery-param.js It worked very well for me!
|
|||
|
I have a simpler solution that does not use any third-party library and is already apt to be used in any browser that has "Object.keys" (aka all modern browsers + edge + ie): In ES5
In ES3
|
|||
|
Just another way (no recursive object):
|
|||||
|
|
Refer from the answer @user187291, add "isArray" as parameter to make the json nested array to be converted.
To make the result : staffId=00000001&Detail[0].identityId=123456&Detail[1].identityId=654321
|
https://stackoverflow.com/questions/1714786/query-string-encoding-of-a-javascript-object
把Javascript 对象转换为键值对连接符字符串的方法总结的更多相关文章
- Javascript对象数据类型(键值对)的创建和使用方法
对象数据类型(键值对) 1.创建键值对 var arry={name:"小明",age:20,isgey:falet} // var 键值对名 = {键:值,键:值} 2.增加键值 ...
- JavaScript中对象转换为原始值的规则
JavaScript中对象转换为原始值遵循哪些原则? P52 对象到布尔值对象到布尔值的转换非常简单:所有的对象(包括数字和函数)都转换为true.对于包装对象亦是如此:new Boolean(fal ...
- 关于JavaScript对象的键和值
一个JavaScript对象由键和值组成. 当一个给定键的值被设置为一个字符串.布尔值.数字.数组或对象时,我们把这个键称为属性. 当把键设置为函数时,我们把它叫做方法.
- json转换为键值对辅助类
/// <summary> /// json转换为键值对辅助类 /// </summary> public class JsonParser { private static ...
- 使用Javascript/jQuery将javascript对象转换为json格式数据 - 海涛的CSDN博客 - 博客频道 - CSDN.NET
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- JavaScript —— 对象的取值与赋值
可能是因为用惯了 Java ,对一个对象取值/赋值喜欢用 setXXX() 和 getXXX() . 在 JavaScript 中使用 setValue() 时,遇到了个奇怪的问题,所以查了下 Jav ...
- C# 给枚举定义DescriptionAttribute,把枚举转换为键值对
在C#中,枚举用来定状态值很方便,例如我定义一个叫做Season的枚举 public enum Season { Spring = 1, Summer = 2, Autumn = 3, Winter ...
- .net c#将数据库数据对象转换为实体值对象
using System; using System.Data; namespace Sunlib { public static class DataHelper { //将数据库数据对象转换为实体 ...
- js对象替换键值名称
js对象替换键值名称 将obj中的id和name字段替换分别替换成为“@id”,“@name” 代码如下: let obj = [{id:,name:,name:"李四"}].ma ...
随机推荐
- 022_统计每个远程 IP 访问了本机 apache 几次?
#$1为IP#i为不同的IP#print ip[i],i 输出不同IP出现的次数总和以及它们是谁#ip[$1]++ 未定义则从0开始,IP出现则自增 #!/bin/bashawk '{ip[$1]++ ...
- redis数据存储--C++连接redis
一.下载的是Redis Windows版本:下载地址:https://github.com/microsoftarchive/redis:解压到:E:\Software\redis-3.0: 二.用V ...
- 【概率论】2-1:条件概率(Conditional Probability)
title: [概率论]2-1:条件概率(Conditional Probability) categories: Mathematic Probability keywords: Condition ...
- 内存管理2-@class关键字
Review: 给对象发送消息,进行相应的计数器操作. Retain消息:使计数器+1,改方法返回对象本身 Release消息:使计数器-1(并不代表释放对象) retainCount消息:获得对象当 ...
- react-native 打包apk 更新js和常见问题
1.打包发布 a.在工程根目录执行如下命令 打包js资源文件 react-native bundle --platform android --dev false --entry-file index ...
- vue-cli脚手架构建项目
vue-cli 是一个官方发布 vue.js 项目脚手架,使用 vue-cli 可以快速创建 vue 项目. 一.安装node.js 二.安装vue-cli npm install -g vue-cl ...
- 为ubuntu找个能用的桌面,顺便进行适当的改造
最近,开始玩ros,结果官方推荐ubuntu linux,虽然都是差不多的linux,无非就是软件包形式不同而已.但是,个人对ubuntu的unity桌面实在是没有爱,最让人无语的是,kubuntu无 ...
- vmware压缩vmdk文件大小
在搭建靶机环境的过程中总是遇见vmdk越来越大,导致上传时间变长.记一下压缩vmdk的方法 ;sync;rm -f zero.fill /usr/bin/vmware-toolbox-cmd disk ...
- NMS(非极大值抑制)实现
1.IOU计算 设两个边界框分别为A,B.A的坐标为Ax1,Ax2,Ay1,Ay2,且Ax1 < Ax2,Ay1 < Ay2.B和A类似. 则IOU为A∩B除以A∪B. 当两个边界框有重叠 ...
- SQL-W3School-高级:SQL NULL 值
ylbtech-SQL-W3School-高级:SQL NULL 值 1.返回顶部 1. NULL 值是遗漏的未知数据. 默认地,表的列可以存放 NULL 值. 本章讲解 IS NULL 和 IS N ...




