Newtonsoft.Json未终止的字符串。预期的定界符:“。路径'StaticPasses',第1行,位置178

时间:2018-10-07 02:27:46

标签: c# json rest http

我在尝试将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或调用有什么问题,那就太好了。谢谢!

1 个答案:

答案 0 :(得分:0)

很明显,Newtonsoft.Json不喜欢在字符串中包含链接并抛出该错误。我通过缩短链接以保留其端点的信息来解决了这个问题。