क्वेरी स्ट्रिंग पार्सर

ब्राउज़र में चलता है वेब

?a=1&b[]=2 को पढ़ने लायक़ तालिका या JSON में बदलें, पैरामीटर संपादित करें और सही तरीक़े से एन्कोड की गई क्वेरी स्ट्रिंग दोबारा बनाएँ।

गोपनीयता: यह टूल पूरी तरह आपके ब्राउज़र में चलता है। आपका इनपुट कभी आपके डिवाइस से बाहर नहीं जाता।
टूल लोड हो रहा है…

क्वेरी स्ट्रिंग पार्सर कैसे इस्तेमाल करें

  1. कोई क्वेरी स्ट्रिंग या पूरा URL पेस्ट करें।
  2. पैरामीटर तालिका (पोज़िशन, key, value, bracket path, कच्चा रूप) और JSON व्यू देखें।
  3. अपने API के मुताबिक़ array स्टाइल और एन्कोडिंग चुनें और दोबारा बनी क्वेरी स्ट्रिंग कॉपी करें।

क्वेरी स्ट्रिंग पार्सर की खूबियाँ

  • ?, & और ; से अलग किए गए पैरामीटर percent- तथा plus-डिकोडिंग के साथ पार्स करता है
  • दोहराई गई key सरणी बन जाती हैं; key[] और key[a][b] नोटेशन सरणी तथा nested ऑब्जेक्ट में बदल जाती है
  • JSON व्यू में वैकल्पिक टाइप पहचान (नंबर, boolean, null)
  • चार array स्टाइल (repeat, brackets, indices, comma) और दो एन्कोडिंग (RFC 3986, form) में क्वेरी दोबारा बनाता है
  • मूल क्रम को फिर से एन्कोड करके संरचित पुनर्निर्माण के साथ दिखाता है, वैकल्पिक key सॉर्टिंग सहित
  • पूरा URL भी स्वीकार करता है और उसमें से सिर्फ़ क्वेरी हिस्सा निकाल लेता है

क्वेरी स्ट्रिंग पार्सर का उदाहरण

bracket सरणी पार्स करके दोहराई गई key से दोबारा बनाना

इनपुट:

?tags[]=new&tags[]=sale&filter[price][max]=50&q=caf%C3%A9+latte

आउटपुट:

JSON: {"tags":["new","sale"],"filter":{"price":{"max":50}},"q":"café latte"}
Rebuilt (repeat style): tags=new&tags=sale&filter%5Bprice%5D%5Bmax%5D=50&q=caf%C3%A9%20latte

क्वेरी स्ट्रिंग पार्सर के बारे में अक्सर पूछे जाने वाले सवाल

दोहराई गई key कैसे संभाली जाती हैं?

ids=1&ids=2 JSON व्यू में सरणी ["1","2"] बन जाती है, और तालिका में दोनों प्रविष्टियाँ अपनी पोज़िशन के साथ दिखती रहती हैं। दोबारा बनी क्वेरी में वही array स्टाइल इस्तेमाल होती है जो आपने चुनी है (repeat, brackets, indices या comma)।

filter[price][max]=50 किसमें बदलता है?

nested ऑब्जेक्ट में: {"filter":{"price":{"max":"50"}}}। [] पर ख़त्म होने वाली key सरणी बन जाती हैं — ठीक वैसे ही जैसे PHP, Rails और qs लाइब्रेरी उन्हें पढ़ती हैं।

स्पेस के लिए %20 और + में क्या अंतर है?

RFC 3986 स्पेस को %20 के रूप में percent-encode करता है। HTML फ़ॉर्म एन्कोडिंग (application/x-www-form-urlencoded) + इस्तेमाल करती है। पार्स करते समय दोनों स्पेस के रूप में डिकोड होते हैं; दोबारा बनाते समय वही एन्कोडिंग चुनें जो आपका API चाहता है।

क्या मैं पूरा URL पेस्ट कर सकता हूँ?

हाँ। जब इनपुट URL जैसा लगता है, तो सिर्फ़ ? के बाद का हिस्सा पार्स होता है और fragment (#…) अनदेखा कर दिया जाता है।

तकनीकी नोट्स

डिकोडिंग में + को स्पेस में बदलने के बाद decodeURIComponent इस्तेमाल होता है, और ख़राब अनुक्रम मिलने पर एरर फेंकने के बजाय कच्चा टेक्स्ट ही रख लिया जाता है। Bracket path एक छोटे व्याकरण (नाम के बाद [segment]*) से पार्स होते हैं जो PHP और qs लाइब्रेरी से मेल खाता है; संख्या वाले सेगमेंट array इंडेक्स बन जाते हैं।