我在尝试将JSON发送到我的REST API时遇到此问题。我不认为方法本身有问题,因为在邮递员中调用端点时,它似乎运行良好。当我使用HttpClient调用端点时,将导致以下错误。
Unterminated string. Expected delimiter: ". Path 'StaticPasses', line 1, position 178.
这是我的JSON:
{"Id":0,"Email":"teststaff@test.com","Name":"TestStaff","Password":"Password","SchoolId":3,"StaticPasses":"[{\"QrCode\":\"https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=http://hallpass.azurewebsites.net/api/pass/getstaticpass/0/3/0\",\"Id\":0,\"Staff\":0,\"Student\":-1,\"ExpirationTime\":\"00:00:00\",\"CreationTime\":\"02:37:28.2114320\",\"Destination\":\"Destination\",\"ShareCode\":\"0\"},{\"QrCode\":\"https://api.qrserver.com/v1/create-qr-code/?size=150x150&data=http://hallpass.azurewebsites.net/api/pass/getstaticpass/1/3/0\",\"Id\":0,\"Staff\":0,\"Student\":-1,\"ExpirationTime\":\"00:00:00\",\"CreationTime\":\"02:38:01.8744350\",\"Destination\":\"Destination\",\"ShareCode\":\"1\"}]"}
同样,JSON似乎在Postman中可以很好地工作,但在我的代码中不起作用。
这是到服务器的呼叫:
string staffJson = JsonConvert.SerializeObject(staff);
var response = await client.GetAsync("schools/updatestaff?staff=" + staffJson);
如果任何人都可以告诉我JSON或调用有什么问题,那就太好了。谢谢!
答案 0 :(得分:0)
很明显,Newtonsoft.Json不喜欢在字符串中包含链接并抛出该错误。我通过缩短链接以保留其端点的信息来解决了这个问题。