Подтвердить что ты не робот

Curl, дающий ошибку "Invalid UTF-8 JSON" от CouchDb, хотя JSON в порядке? Есть идеи?

Это немного отличается от вопроса под названием "Ошибка о" недействительном JSON с представлением couchDB, но jsons fine ": я не пытаюсь загрузить файл, просто введите простой документ.

Пример, который я пытаюсь использовать, - это на самом деле книга О'Рейли "CouchDB: The Definitive Guide", и я уверен, что я уже пробовал ее и получил ее для работы. Здесь команда:

curl -X PUT http://username:[email protected]:5984/albums/6e1295ed6c29495e54cc05947f18c8af -d '{"title":"There is Nothing Left to Lose","artist":"Foo Fighters"}'

Существующие альбомы базы данных и правильное имя пользователя и пароль. Я проверил это с помощью JSONLint, и JSON действителен, и я в недоумении... по-видимому, есть проблема с самим CouchDB-сервером, но, похоже, он работает правильно... любые идеи? Это сводит меня с ума!

Спасибо

4b9b3361

Ответ 1

Спасибо, ребята. Оказывается, это проблема с эвакуацией цитаты. Вот ответ, который я получил от Дэвида в списке рассылки пользователей CouchDB:

Это дело о том, что касается цитирование - настоящий PITA. К сожалению cmd.exe shell на окнах не анализирует это правильно. Правила для экранирование с помощью "или" ^ "или" \ "немного расплывчато, но это работает:

C:\tmp > curl -X PUT http://username:[email protected]:5984/albums/6e1295ed6c29495e54cc05947f18c8af-d" {\ "title\": \ "Нет ничего, что можно было бы потерять \", \ "artist\": \ "Foo Бойцы \" } "{" ОК ": правда," идентификатор ":" 6e1295ed6c29495e54cc05947f18c8af "," оборот ":" 1-4b39c2971c9ad54cb37e08fa02fec636 "}

C:\TMP >

" в основном вам нужно "убежать" \ quotes\ "в вашем JSON"

Это устраняет мою проблему

Ответ 2

Я также встретил такую ​​же проблему, после некоторого поиска я нашел около Git Bash в другом вопросе. Git bash имеет команду curl внутри. Git bash включен в установщик Git.

Ответ 3

Вы должны поместить символ escap character **, а также не забудьте поставить после -d все вещи в ** "". Т.е.: curl -X PUT http://127.0.0.1:5984/my_database/ "001" -d " {\" Name \ ":\" Suresh \ ",\" age \ ":\" 32 \ ",\" Назначение \ ":\" Associates Manager \ "}"