![](/img/trans.png)
[英]C# InstaSharper: Unable to upload photo: Unexpected character encountered while parsing value: S. Path '', line 0, position 0
[英]c# API “Unexpected character encountered while parsing value: S. Path '', line 0, position 0”
我使用c#編碼的多個API效果很好。 我想使用一個接收匿名對象的對象(我不想創建一個類)。 嘗試反序列化對象時遇到問題。
我有一個遵循此方案的API,當使用json_dumps
函數從python
調用它時,它運行良好。 但是當我嘗試使用JSON.stringify
(來自a甚至POSTMAN時,我有一個400錯誤的請求。
這是我的代碼,我已經嘗試了很多東西:
[WebInvoke(Method = "POST", UriTemplate = "myUrl")]
[OperationContract]
public Message myMethod(object objectSentByUser)
{
var perso = JsonConvert.DeserializeObject<dynamic>(objectSentByUser.ToString());
JsonConvert.DeserializeObject<dynamic>
等待一個字符串,我嘗試過:
-在myMethod
的參數objectSentByUser
指定為字符串時,我什至沒有輸入方法就得到了400(我嘗試發送JSON,添加引號,發送字符串等。)
-使用(string)objectSentByUser
,它不起作用
-使用toString()
方法,這將導致下一個錯誤:解析值:S時遇到意外字符。路徑”,行0,位置0,這很正常,因為objectSentByUser.toString()
返回“ System.Object” (但是為什么與python json_dump一起使用時會起作用?)
當使用python函數json_dump調用此代碼時,該代碼可返回如下對象:
“ {\\\\” key1 \\\\“:\\\\” value1 \\\\“,...}”
從郵遞員,我發送了一個經典的POST,其中application/json
為contentType
,主體中帶有有效的JSON
(已在另一個關於stackoverflow的討論中找到的網站上進行了驗證)
非常感謝你的幫助
再見
如果用戶向您的操作發送了有效的json字符串,則不接受對象作為參數,而是接受字符串(即,因為您的用戶向您發送了一個)。
如果在對象上調用ToString()
,則可能不是Json
格式。
嘗試接受一個字符串並將其反序列化:
[WebInvoke(Method = "POST", UriTemplate = "myUrl")]
[OperationContract]
public Message myMethod(string jsonSentByUser)
{
var perso = JsonConvert.DeserializeObject<dynamic>(jsonSentByUser);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.