कि करने के लिए कोई मानक तरीका नहीं है।
विंक javax.ws.rs.core.MultivaluedMap
का समर्थन करता है। तो अगर आप http://example.com/?a=1&a=15&b=3
की तरह कुछ भेज तो आपको मिलेंगे: कुंजी a
मान 1, 15, कुंजी b
मूल्य 3.
यदि आपको ?a[1]=1&a[gv]=15&b=3
जैसे कुछ को पार्स करने की आवश्यकता है तो आपको javax.ws.rs.core.MultivaluedMap.entrySet()
लेने और चाबियों का एक अतिरिक्त पार्सिंग करने की आवश्यकता है।
यहाँ कोड के उदाहरण आप उपयोग कर सकते हैं (यह परीक्षण नहीं किया है, तो यह कुछ मामूली त्रुटियां हो सकती हैं):
String getArrayParameter(String key, String index, MultivaluedMap<String, String> queryParameters) {
for (Entry<String, List<String>> entry : queryParameters.entrySet()) {
String qKey = entry.getKey();
int a = qKey.indexOf('[');
if (a < 0) {
// not an array parameter
continue;
}
int b = qKey.indexOf(']');
if (b <= a) {
// not an array parameter
continue;
}
if (qKey.substring(0, a).equals(key)) {
if (qKey.substring(a + 1, b).equals(index)) {
return entry.getValue().get(0);
}
}
}
return null;
}
अपने संसाधन में आप इसे इस तरह बुलाना चाहिए:
@GET
public void getResource(@Context UriInfo uriInfo) {
MultivaluedMap<String, String> queryParameters = uriInfo.getQueryParameters();
getArrayParameter("a", "foo", queryParameters);
}
यह वही नहीं है जो मैं चाहता हूं, क्योंकि चाबियाँ भी मेरे लिए महत्वपूर्ण हैं। तो जब मैं 'एक' मिलता है, मैं चाहता हूँ करने के लिए इसे होने की मूल्य है: { '1': 1, 'जीवी': 1} – Martin
आपका प्रस्तावित प्रारूप सामान्य प्रश्न नहीं है प्रारूप पैरामीटर: यदि आप सूचकांक के साथ कुंजी नाम मिला दें। वैसे भी आप मानचित्र से keySet() प्राप्त कर सकते हैं और इसे स्वयं पार्स कर सकते हैं। – Tarlog
यह प्रारंभिक विचार था - वहाँ कुछ है जो मैं पर यह पार्स करने के बजाय का उपयोग कर सकते है अपने ही :) – Martin