2013-08-19 6 views
12

एक Windows कमांड लाइन से निम्न आदेश चल रहा है एक मौजूदा CouchDB डेटाबेस (नाम परीक्षण) के लिए एक नया दस्तावेज़ पोस्ट करने की कोशिश cURL का उपयोग कर में विफल रहता है:CouchDB cURL विंडोज कमांड लाइन अमान्य JSON

curl -H "Content-Type: application/json" -X POST "http://127.0.0.1:5984/test" -d {"valid":"json"} 

यह त्रुटि देता है:

{"error":"bad_request","reason":"invalid_json"} 

JSON मान्य है तो क्या देता है?

उत्तर

11

उत्तर कमांड लाइन पर JSON स्ट्रिंग के स्वरूपण से संबंधित है। भले ही यह उचित JSON है, जब भी आप इसे लिखते हैं, कमांड लाइन, ऐसा लगता है, इसे भेजने से पहले इसे दोबारा सुधारना चाहिए। (शायद कोई और यह समझा सकता है कि यह अधिक विस्तार से क्यों करता है।) इसे ठीक करने के लिए आपको अपने उद्धरणों से बचने की आवश्यकता है इसलिए तरह कमांड लाइन:

curl -H "Content-Type: application/json" -X POST "http://127.0.0.1:5984/test" -d {"""valid""":"""json"""} 

अतिरिक्त उद्धरण चिह्न देखते हैं? यह एक आईडी और संशोधन संख्या के साथ "ठीक है: सच" काम करना चाहिए और वापस करना चाहिए।

+1

ऐसा करने का सबसे आसान तरीका एकल उद्धरणों का उपयोग करना है:' -d '{"मान्य": "json"}' ' –

+3

वास्तव में सिंगल कोट्स अभी भी फेंकता है और अमान्य जेसन त्रुटि जब मैं कर्ल का उपयोग कर रहा हूं विंडोज कमांड लाइन प्रॉम्प्ट। – skinneejoe

+2

यदि आप विंडोज मशीन पर स्थानीय रूप से चलते हैं तो रिमोट मशीन या सिग्विन या गिटबाश के खिलाफ पुटी का उपयोग करें। यहां मेरी कॉच डीबी चीट शीट है http://macgyverdev.blogspot.se/2013/12/couchdb-on-linux-mint.html –

3

आपको रिक्त स्थान का समर्थन करने के लिए पूरे कथन को भी उद्धृत करना होगा: -d "{\" शीर्षक \ ": \" कुछ भी नहीं छोड़ा गया \ ", \" कलाकार \ ": \" फू सेनानियों \ " } "

संबंधित मुद्दे