на клиенте не было экранирования кавычек.
return JsonResult(myString)
так и делаю, но вот постман показывает результат как строку. А если возвращаю new JsonResult(тут_объект) то показывает без экранирование и со структурой
Что вы имеете в виду под "Экранирование"? Если вы хотите вернуть JSON, то кавычки и экранирование обязательны, потому что иначе это не Json. Если хотите вернуть строку как есть, то это return Content(myString).
Но это уже не "Вернуть json", а "Вернуть строку как есть" ¯\_(ツ)_/¯
Меня удивило поведение постмана. В первом случае он получает строку json с '\' перед кавычками, если же возвращаю объект, который сериализуется в json, то показывает без '\'
Скорее всего, он просто немного корявенько пытается показать, что "А это не я кавычку тут поставило, это мне так прилетело!". Та же студия в отладчике так делает. ¯\_(ツ)_/¯ Но точно не знаю, вы ни кода, ни скринов не даёте
private readonly string _geoJson = "{\"type\":\"FeatureCollection\",\"features\":[{\"type\":\"Feature\",\"properties\":{},\"geometry\":{\"type\":\"Polygon\",\"coordinates\":" + "[[[155.390625,36.87962060502676],[147.3046875,15.961329081596647],[184.21874999999997,4.915832801313164],[186.328125,32.24997445586331],[155.390625,36.87962060502676]]]}}]}"; Есть такой джейсон возвращаю как new JsonResult(_geoJson)
Правильно. Постман вам на вкладке Raw покажет что на самом деле прилетело. Потому что, с точки зрения new JsonResult - вы передали туда какую-то строку. Он и сериализует вам строку в json, со всеми положенными по стандарту экранированиями, и отсылает это как ответ.
Хорошо, а как сделать, что бы постман понял, что это не просто строка, а джейсон?
а он это должен понимать?
он же понимает, когда я сериализую объект в джейсон
Как минимум по типу контента
Обсуждают сегодня