क्या आप जावास्क्रिप्ट ऑब्जेक्ट को एनकोड करने का एक तेज़ और सरल तरीका जानते हैं string
कि मैं एक GET
अनुरोध से गुजर सकता हूं ?
नहीं jQuery
, कोई अन्य चौखटे नहीं - बस सादा जावास्क्रिप्ट :)
URLSearchParams
अब समर्थन करते हैं ...
क्या आप जावास्क्रिप्ट ऑब्जेक्ट को एनकोड करने का एक तेज़ और सरल तरीका जानते हैं string
कि मैं एक GET
अनुरोध से गुजर सकता हूं ?
नहीं jQuery
, कोई अन्य चौखटे नहीं - बस सादा जावास्क्रिप्ट :)
URLSearchParams
अब समर्थन करते हैं ...
जवाबों:
इस तरह?
serialize = function(obj) {
var str = [];
for (var p in obj)
if (obj.hasOwnProperty(p)) {
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
}
return str.join("&");
}
console.log(serialize({
foo: "hi there",
bar: "100%"
}));
// foo=hi%20there&bar=100%25
संपादित करें: यह एक पुनरावर्ती वस्तुओं को भी परिवर्तित करता है (क्वेरी स्ट्रिंग के लिए php "सरणी" संकेतन का उपयोग करके)
serialize = function(obj, prefix) {
var str = [],
p;
for (p in obj) {
if (obj.hasOwnProperty(p)) {
var k = prefix ? prefix + "[" + p + "]" : p,
v = obj[p];
str.push((v !== null && typeof v === "object") ?
serialize(v, k) :
encodeURIComponent(k) + "=" + encodeURIComponent(v));
}
}
return str.join("&");
}
console.log(serialize({
foo: "hi there",
bar: {
blah: 123,
quux: [1, 2, 3]
}
}));
// foo=hi%20there&bar%5Bblah%5D=123&bar%5Bquux%5D%5B0%5D=1&bar%5Bquux%5D%5B1%5D=2&bar%5Bquux%5D%5B2%5D=3
jQuery के पास इसके लिए एक फ़ंक्शन है jQuery.param()
, यदि आप पहले से ही इसका उपयोग कर रहे हैं तो आप इसका उपयोग कर सकते हैं:
http://api.jquery.com/jquery.param/
उदाहरण:
var params = { width:1680, height:1050 };
var str = jQuery.param( params );
str
अब शामिल है width=1680&height=1050
var a = []; a[5] = 'foo'; jQuery.param({ parameters: a });
है "parameters[]=¶meters[]=¶meters[]=¶meters[]=¶meters[]=¶meters[]=foo"
। प्रदर्शित करने के लिए: परिणाम में । जो, जबकि सही है, वह नहीं हो सकता है जो आप उम्मीद करते हैं।
बस सभी वर्तमान ब्राउज़रों मेंURLSearchParams
इस काम का उपयोग करें
new URLSearchParams(object).toString()
let j = { m: 5, n: { k: 1 } }; new URLSearchParams(j).toString(); // result "m=5&n=%5Bobject+Object%5D"
stringify
नेस्टेड वस्तुओं आप कर सकते हैं इससे पहले कि करने के लिएURLSearchParams
Object.keys(obj).reduce(function(a,k){a.push(k+'='+encodeURIComponent(obj[k]));return a},[]).join('&')
संपादित करें: मुझे यह एक-लाइनर पसंद है, लेकिन मुझे यकीन है कि यह एक और अधिक लोकप्रिय जवाब होगा यदि यह स्वीकृत उत्तर को शब्द से मेल खाता है:
function serialize( obj ) {
let str = '?' + Object.keys(obj).reduce(function(a, k){
a.push(k + '=' + encodeURIComponent(obj[k]));
return a;
}, []).join('&');
return str;
}
Object.keys(obj).map(k => k + '=' + encodeURIComponent(obj[k])).join('&')
Object.keys
केवल IE> = 9 में उपलब्ध है
Object.keys(obj).map(k => `${k}=${encodeURIComponent(obj[k])}`).join('&')
Object.entries(obj).map(e => e.map(ee => encodeURIComponent(ee)).join('=')).join('&');
यहाँ ES6 में एक लाइनर है:
Object.keys(obj).map(k => `${encodeURIComponent(k)}=${encodeURIComponent(obj[k])}`).join('&');
export?actions[]=finance,create,edit
जब यह होना चाहिए था के export?actions[]=finance&actions[]=create&actions[]=edit
रूप में भयानक मानक है।
actions[]
PHP संकेतन है; Django के action
बजाय कई का उपयोग करता है (कोई []
प्रत्यय); कुछ अन्य ORM / CMS को अल्पविराम से अलग की गई सूचियों आदि की आवश्यकता होती है, इसलिए "यदि यह सरल तार नहीं है, तो पहले सुनिश्चित करें कि आपको पता है कि आपका सर्वर भी क्या चाहता है"।
const querystring = require('querystring')
const obj = {
foo: 'bar',
baz: 'tor'
}
let result = querystring.stringify(obj)
// foo=bar&baz=tor
मैं URLSearchParams
इंटरफ़ेस का उपयोग करने का सुझाव देता हूं :
const searchParams = new URLSearchParams();
const search = {foo: "hi there", bar: "100%" };
Object.keys(search).forEach(key => searchParams.append(key, search[key]));
console.log(searchParams.toString())
या कंस्ट्रक्टर में सर्च ऑब्जेक्ट को इस तरह से पास करके:
const obj = {foo: "hi there", bar: "100%" };
const params = new URLSearchParams(obj).toString();
User187291 द्वारा स्वीकृत समाधान के लिए एक छोटा संशोधन:
serialize = function(obj) {
var str = [];
for(var p in obj){
if (obj.hasOwnProperty(p)) {
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
}
}
return str.join("&");
}
ऑब्जेक्ट पर hasOwnProperty के लिए जाँच करना JSLint / JSHint को खुश करता है, और यह वस्तु या अन्य सामान के गलती से सीरियल के तरीकों को रोक देता है यदि ऑब्जेक्ट कुछ भी हो लेकिन एक सरल शब्दकोश है। इस पृष्ठ के बयानों के लिए पैराग्राफ देखें: http://javascript.crockford.com/code.html
खैर, हर कोई अपना वन-लाइनर यहां डालता है इसलिए यहां मेरा जाता है:
const encoded = Object.entries(obj).map(([k, v]) => `${k}=${encodeURIComponent(v)}`).join("&");
क्या आपको मनमानी वस्तुओं को भेजने की आवश्यकता है? यदि हां, तो GET एक बुरा विचार है क्योंकि URL की लंबाई की सीमाएं हैं जो उपयोगकर्ता एजेंट और वेब सर्वर स्वीकार करेंगे। मेरा सुझाव भेजने और फिर क्वेरी स्ट्रिंग बनाने के लिए नाम-मान जोड़े की एक सरणी का निर्माण करना होगा:
function QueryStringBuilder() {
var nameValues = [];
this.add = function(name, value) {
nameValues.push( {name: name, value: value} );
};
this.toQueryString = function() {
var segments = [], nameValue;
for (var i = 0, len = nameValues.length; i < len; i++) {
nameValue = nameValues[i];
segments[i] = encodeURIComponent(nameValue.name) + "=" + encodeURIComponent(nameValue.value);
}
return segments.join("&");
};
}
var qsb = new QueryStringBuilder();
qsb.add("veg", "cabbage");
qsb.add("vegCount", "5");
alert( qsb.toQueryString() );
यह विधि एक जावास्क्रिप्ट ऑब्जेक्ट को एक में परिवर्तित करती है URI Query String
। नेस्टेड एरेज़ और ऑब्जेक्ट्स ( Rails
/ PHP
सिंटैक्स में) भी हैंडल करता है :
function serializeQuery(params, prefix) {
const query = Object.keys(params).map((key) => {
const value = params[key];
if (params.constructor === Array)
key = `${prefix}[]`;
else if (params.constructor === Object)
key = (prefix ? `${prefix}[${key}]` : key);
if (typeof value === 'object')
return serializeQuery(value, key);
else
return `${key}=${encodeURIComponent(value)}`;
});
return [].concat.apply([], query).join('&');
}
उदाहरण उपयोग:
let params = {
a: 100,
b: 'has spaces',
c: [1, 2, 3],
d: { x: 9, y: 8}
}
serializeQuery(params)
// returns 'a=100&b=has%20spaces&c[]=1&c[]=2&c[]=3&d[x]=9&d[y]=8
function
को बाहर करने के लिए संपादित करते falsy
हैं (अशक्त, अपरिभाषित, NaN, '') ...
यहाँ स्वीकृत उत्तर का कॉफ़ीस्क्रिप्ट संस्करण है। इससे किसी का समय बच सकता है।
serialize = (obj, prefix) ->
str = []
for p, v of obj
k = if prefix then prefix + "[" + p + "]" else p
if typeof v == "object"
str.push(serialize(v, k))
else
str.push(encodeURIComponent(k) + "=" + encodeURIComponent(v))
str.join("&")
यहाँ Object.entries के साथ संक्षिप्त और पुनरावर्ती संस्करण है । यह मनमाने ढंग से नेस्टेड एरे को संभालता है, लेकिन नेस्टेड ऑब्जेक्ट्स को नहीं। यह खाली तत्वों को भी हटाता है:
const format = (k,v) => v !== null ? `${k}=${encodeURIComponent(v)}` : ''
const to_qs = (obj) => {
return [].concat(...Object.entries(obj)
.map(([k,v]) => Array.isArray(v)
? v.map(arr => to_qs({[k]:arr}))
: format(k,v)))
.filter(x => x)
.join('&');
}
उदाहरण के लिए:
let json = {
a: [1, 2, 3],
b: [], // omit b
c: 1,
d: "test&encoding", // uriencode
e: [[4,5],[6,7]], // flatten this
f: null, // omit nulls
g: 0
};
let qs = to_qs(json)
=> "a=1&a=2&a=3&c=1&d=test%26encoding&e=4&e=5&e=6&e=7&g=0"
ES7 में आप इसे एक पंक्ति में लिख सकते हैं:
const serialize = (obj) => (Object.entries(obj).map(i => [i[0], encodeURIComponent(i[1])].join('=')).join('&'))
वस्तु को क्वेरी स्ट्रिंग में परिवर्तित करने के लिए सिंगल लाइन यदि किसी को फिर से इसकी आवश्यकता हो
let Objs = { a: 'obejct-a', b: 'object-b' }
Object.keys(objs).map(key => key + '=' + objs[key]).join('&')
// result will be a=object-a&b=object-b
मेरे पास एक सरल समाधान है जो किसी भी तीसरे पक्ष के पुस्तकालय का उपयोग नहीं करता है और पहले से ही किसी भी ब्राउज़र में उपयोग करने के लिए उपयुक्त है जिसमें "Object.keys" है (सभी आधुनिक ब्राउज़र + एज + उर्फ):
ईएस 5 में
function(a){
if( typeof(a) !== 'object' )
return '';
return `?${Object.keys(a).map(k=>`${k}=${a[k]}`).join('&')}`;
}
ईएस 3 में
function(a){
if( typeof(a) !== 'object' )
return '';
return '?' + Object.keys(a).map(function(k){ return k + '=' + a[k] }).join('&');
}
यदि आप किसी नेस्टेड ऑब्जेक्ट को पुनरावर्ती रूप से कनवर्ट करना चाहते हैं और ऑब्जेक्ट में सरणियाँ हो सकती हैं या नहीं हो सकती हैं (और सरणियों में ऑब्जेक्ट या सरणियाँ, आदि हो सकती हैं), तो समाधान थोड़ा और अधिक जटिल हो जाता है। यह मेरा प्रयास है।
मैंने यह चुनने के लिए कुछ विकल्प भी जोड़े हैं कि क्या आप प्रत्येक ऑब्जेक्ट सदस्य के लिए रिकॉर्ड करना चाहते हैं कि यह मुख्य ऑब्जेक्ट में किस गहराई पर बैठता है, और यह चुनने के लिए कि क्या आप परिवर्तित एरे से आने वाले सदस्यों के लिए एक लेबल जोड़ना चाहते हैं।
आदर्श रूप से आपको परीक्षण करना चाहिए कि क्या चीज़ पैरामीटर वास्तव में एक वस्तु या सरणी प्राप्त करता है।
function thingToString(thing,maxDepth,recordLevel,markArrays){
//thing: object or array to be recursively serialized
//maxDepth (int or false):
// (int) how deep to go with converting objects/arrays within objs/arrays
// (false) no limit to recursive objects/arrays within objects/arrays
//recordLevel (boolean):
// true - insert "(level 1)" before transcript of members at level one (etc)
// false - just
//markArrays (boolean):
// insert text to indicate any members that came from arrays
var result = "";
if (maxDepth !== false && typeof maxDepth != 'number') {maxDepth = 3;}
var runningDepth = 0;//Keeps track how deep we're into recursion
//First prepare the function, so that it can call itself recursively
function serializeAnything(thing){
//Set path-finder values
runningDepth += 1;
if(recordLevel){result += "(level " + runningDepth + ")";}
//First convert any arrays to object so they can be processed
if (thing instanceof Array){
var realObj = {};var key;
if (markArrays) {realObj['type'] = "converted array";}
for (var i = 0;i < thing.length;i++){
if (markArrays) {key = "a" + i;} else {key = i;}
realObj[key] = thing[i];
}
thing = realObj;
console.log('converted one array to ' + typeof realObj);
console.log(thing);
}
//Then deal with it
for (var member in thing){
if (typeof thing[member] == 'object' && runningDepth < maxDepth){
serializeAnything(thing[member]);
//When a sub-object/array is serialized, it will add one to
//running depth. But when we continue to this object/array's
//next sibling, the level must go back up by one
runningDepth -= 1;
} else if (maxDepth !== false && runningDepth >= maxDepth) {
console.log('Reached bottom');
} else
if (
typeof thing[member] == "string" ||
typeof thing[member] == 'boolean' ||
typeof thing[member] == 'number'
){
result += "(" + member + ": " + thing[member] + ") ";
} else {
result += "(" + member + ": [" + typeof thing[member] + " not supported]) ";
}
}
}
//Actually kick off the serialization
serializeAnything(thing);
return result;
}
स्वीकृत समाधान के लिए जोड़, यह वस्तुओं की वस्तुओं और सरणी के साथ काम करता है:
parseJsonAsQueryString = function (obj, prefix, objName) {
var str = [];
for (var p in obj) {
if (obj.hasOwnProperty(p)) {
var v = obj[p];
if (typeof v == "object") {
var k = (objName ? objName + '.' : '') + (prefix ? prefix + "[" + p + "]" : p);
str.push(parseJsonAsQueryString(v, k));
} else {
var k = (objName ? objName + '.' : '') + (prefix ? prefix + '.' + p : p);
str.push(encodeURIComponent(k) + "=" + encodeURIComponent(v));
//str.push(k + "=" + v);
}
}
}
return str.join("&");
}
यदि आप asp.net mvc एक्शन विधियों की तरह ऑब्जेक्ट पैरामीटर का उपयोग कर रहे हैं, तो भी objName जोड़ दिया है।
थोड़ा सा बेहतर दिखना
objectToQueryString(obj, prefix) {
return Object.keys(obj).map(objKey => {
if (obj.hasOwnProperty(objKey)) {
const key = prefix ? `${prefix}[${objKey}]` : objKey;
const value = obj[objKey];
return typeof value === "object" ?
this.objectToQueryString(value, key) :
`${encodeURIComponent(key)}=${encodeURIComponent(value)}`;
}
return null;
}).join("&");
}
मैंने JSON स्ट्रिंगर्स की तुलना की और परिणाम इस प्रकार हैं:
JSON: {"_id":"5973782bdb9a930533b05cb2","isActive":true,"balance":"$1,446.35","age":32,"name":"Logan Keller","email":"logankeller@artiq.com","phone":"+1 (952) 533-2258","friends":[{"id":0,"name":"Colon Salazar"},{"id":1,"name":"French Mcneil"},{"id":2,"name":"Carol Martin"}],"favoriteFruit":"banana"}
Rison: (_id:'5973782bdb9a930533b05cb2',age:32,balance:'$1,446.35',email:'logankeller@artiq.com',favoriteFruit:banana,friends:!((id:0,name:'Colon Salazar'),(id:1,name:'French Mcneil'),(id:2,name:'Carol Martin')),isActive:!t,name:'Logan Keller',phone:'+1 (952) 533-2258')
O-Rison: _id:'5973782bdb9a930533b05cb2',age:32,balance:'$1,446.35',email:'logankeller@artiq.com',favoriteFruit:banana,friends:!((id:0,name:'Colon Salazar'),(id:1,name:'French Mcneil'),(id:2,name:'Carol Martin')),isActive:!t,name:'Logan Keller',phone:'+1 (952) 533-2258'
JSURL: ~(_id~'5973782bdb9a930533b05cb2~isActive~true~balance~'!1*2c446.35~age~32~name~'Logan*20Keller~email~'logankeller*40artiq.com~phone~'*2b1*20*28952*29*20533-2258~friends~(~(id~0~name~'Colon*20Salazar)~(id~1~name~'French*20Mcneil)~(id~2~name~'Carol*20Martin))~favoriteFruit~'banana)
QS: _id=5973782bdb9a930533b05cb2&isActive=true&balance=$1,446.35&age=32&name=Logan Keller&email=logankeller@artiq.com&phone=+1 (952) 533-2258&friends[0][id]=0&friends[0][name]=Colon Salazar&friends[1][id]=1&friends[1][name]=French Mcneil&friends[2][id]=2&friends[2][name]=Carol Martin&favoriteFruit=banana
URLON: $_id=5973782bdb9a930533b05cb2&isActive:true&balance=$1,446.35&age:32&name=Logan%20Keller&email=logankeller@artiq.com&phone=+1%20(952)%20533-2258&friends@$id:0&name=Colon%20Salazar;&$id:1&name=French%20Mcneil;&$id:2&name=Carol%20Martin;;&favoriteFruit=banana
QS-JSON: isActive=true&balance=%241%2C446.35&age=32&name=Logan+Keller&email=logankeller%40artiq.com&phone=%2B1+(952)+533-2258&friends(0).id=0&friends(0).name=Colon+Salazar&friends(1).id=1&friends(1).name=French+Mcneil&friends(2).id=2&friends(2).name=Carol+Martin&favoriteFruit=banana
उनमें से सबसे छोटा URL ऑब्जेक्ट नोटेशन है ।
ठीक है, यह एक पुरानी पोस्ट है लेकिन मैं इस समस्या का सामना कर रहा हूं और मैंने अपना व्यक्तिगत समाधान ढूंढ लिया है .. शायद किसी और की मदद कर सकता हूं।
function objToQueryString(obj){
var k = Object.keys(obj);
var s = "";
for(var i=0;i<k.length;i++) {
s += k[i] + "=" + encodeURIComponent(obj[k[i]]);
if (i != k.length -1) s += "&";
}
return s;
};
उपरोक्त उत्तर काम नहीं करते हैं यदि आपके पास बहुत से नेस्टेड ऑब्जेक्ट हैं। इसके बजाय आप यहाँ से फंक्शन परम ले सकते हैं - https://github.com/knowledgecode/jquery-param/blob/master/jquery-param.js यह मेरे लिए बहुत अच्छा काम करता है!
var param = function (a) {
var s = [], rbracket = /\[\]$/,
isArray = function (obj) {
return Object.prototype.toString.call(obj) === '[object Array]';
}, add = function (k, v) {
v = typeof v === 'function' ? v() : v === null ? '' : v === undefined ? '' : v;
s[s.length] = encodeURIComponent(k) + '=' + encodeURIComponent(v);
}, buildParams = function (prefix, obj) {
var i, len, key;
if (prefix) {
if (isArray(obj)) {
for (i = 0, len = obj.length; i < len; i++) {
if (rbracket.test(prefix)) {
add(prefix, obj[i]);
} else {
buildParams(prefix + '[' + (typeof obj[i] === 'object' ? i : '') + ']', obj[i]);
}
}
} else if (obj && String(obj) === '[object Object]') {
for (key in obj) {
buildParams(prefix + '[' + key + ']', obj[key]);
}
} else {
add(prefix, obj);
}
} else if (isArray(obj)) {
for (i = 0, len = obj.length; i < len; i++) {
add(obj[i].name, obj[i].value);
}
} else {
for (key in obj) {
buildParams(key, obj[key]);
}
}
return s;
};
return buildParams('', a).join('&').replace(/%20/g, '+');
};
ES6 समाधान एक JAVASCRIPT OBJECT की त्वरित STRING प्रविष्टि के लिए
const params = {
a: 1,
b: 'query stringify',
c: null,
d: undefined,
f: '',
g: { foo: 1, bar: 2 },
h: ['Winterfell', 'Westeros', 'Braavos'],
i: { first: { second: { third: 3 }}}
}
static toQueryString(params = {}, prefix) {
const query = Object.keys(params).map((k) => {
let key = k;
const value = params[key];
if (!value && (value === null || value === undefined || isNaN(value))) {
value = '';
}
switch (params.constructor) {
case Array:
key = `${prefix}[]`;
break;
case Object:
key = (prefix ? `${prefix}[${key}]` : key);
break;
}
if (typeof value === 'object') {
return this.toQueryString(value, key); // for nested objects
}
return `${key}=${encodeURIComponent(value)}`;
});
return query.join('&');
}
toQueryString (पैरामीटर)
"a=1&b=query%20stringify&c=&d=&f=&g[foo]=1&g[bar]=2&h[]=Winterfell&h[]=Westeros&h[]=Braavos&i[first][second][third]=3"
यह एक समाधान है जो .NET से बाहर बॉक्स के लिए काम करेगा। मैंने इस थ्रेड का प्राथमिक उत्तर लिया है और इसे अपडेट किया है ताकि हमारी .NET आवश्यकताएं पूरी हो सकें।
function objectToQuerystring(params) {
var result = '';
function convertJsonToQueryString(data, progress, name) {
name = name || '';
progress = progress || '';
if (typeof data === 'object') {
Object.keys(data).forEach(function (key) {
var value = data[key];
if (name == '') {
convertJsonToQueryString(value, progress, key);
} else {
if (isNaN(parseInt(key))) {
convertJsonToQueryString(value, progress, name + '.' + key);
} else {
convertJsonToQueryString(value, progress, name + '[' + key+ ']');
}
}
})
} else {
result = result ? result.concat('&') : result.concat('?');
result = result.concat(`${name}=${data}`);
}
}
convertJsonToQueryString(params);
return result;
}
मैंने इसके लिए एक पैकेज लिखा है: ऑब्जेक्ट-क्वेरी-स्ट्रिंग :)
नेस्टेड ऑब्जेक्ट, सरणियों, कस्टम एन्कोडिंग फ़ंक्शन आदि का समर्थन करता है लाइटवेट और jQuery मुक्त।
// TypeScript
import { queryString } from 'object-query-string';
// Node.js
const { queryString } = require("object-query-string");
const query = queryString({
filter: {
brands: ["Audi"],
models: ["A4", "A6", "A8"],
accidentFree: true
},
sort: 'mileage'
});
रिटर्न
filter[brands][]=Audi&filter[models][]=A4&filter[models][]=A6&filter[models][]=A8&filter[accidentFree]=true&sort=milage
बस एक और तरीका (कोई पुनरावर्ती वस्तु):
getQueryString = function(obj)
{
result = "";
for(param in obj)
result += ( encodeURIComponent(param) + '=' + encodeURIComponent(obj[param]) + '&' );
if(result) //it's not empty string when at least one key/value pair was added. In such case we need to remove the last '&' char
result = result.substr(0, result.length - 1); //If length is zero or negative, substr returns an empty string [ref. http://msdn.microsoft.com/en-us/library/0esxc5wy(v=VS.85).aspx]
return result;
}
alert( getQueryString({foo: "hi there", bar: 123, quux: 2 }) );
जवाब @ user187291 से देखें, "isArray" को पैरामीटर के रूप में जोड़कर json नेस्टेड सरणी में परिवर्तित किया जा सकता है।
data : {
staffId : "00000001",
Detail : [ {
"identityId" : "123456"
}, {
"identityId" : "654321"
} ],
}
परिणाम बनाने के लिए:
staffId = 00000001 और विस्तार [0] .identityId = 123456 और विस्तार [1] .identityId = 654321
serialize = function(obj, prefix, isArray) {
var str = [],p = 0;
for (p in obj) {
if (obj.hasOwnProperty(p)) {
var k, v;
if (isArray)
k = prefix ? prefix + "[" + p + "]" : p, v = obj[p];
else
k = prefix ? prefix + "." + p + "" : p, v = obj[p];
if (v !== null && typeof v === "object") {
if (Array.isArray(v)) {
serialize(v, k, true);
} else {
serialize(v, k, false);
}
} else {
var query = k + "=" + v;
str.push(query);
}
}
}
return str.join("&");
};
serialize(data, "prefix", false);
आप साधारण जावास्क्रिप्ट का उपयोग करके भी इसे प्राप्त कर सकते हैं ।
const stringData = '?name=Nikhil&surname=Mahirrao&age=30';
const newData= {};
stringData.replace('?', '').split('&').map((value) => {
const temp = value.split('=');
newData[temp[0]] = temp[1];
});
console.log('stringData: '+stringData);
console.log('newData: ');
console.log(newData);