获得无效的json原创性

时间:2017-10-10 20:54:00

标签: c# json httpclient

嘿,我有一个奇怪的问题,我无法弄清楚。基本上我试图做一个简单的httpClient帖子请求,但我一直得到一个“无效的json原语:”。我已经检查了https://jsonlint.com/,它说这是有效的json,但我的应用程序另有说明。任何信息都会非常感激吗?

func(3,7)

客户端初始化如下:

string test = "{\"CurrentUser\":null,\"Stacktrace\":\"System.UnhandledExceptionEventArgs\",\"OtherData\":null,\"UserInput\":\"\",\"TimeStamp\":\"2017-10-10T16:48:58.606512-04:00\"}"

 HttpContent httpContent = new StringContent(test);
 await httpClient.PostAsync("/api/logException", httpContent);

4 个答案:

答案 0 :(得分:2)

不是自己编写JSON格式(很容易出错),而是简单地创建一个对象并将其序列化为JSON。有c#做繁重的工作。首先创建一个类:

public class Model
{
   public string CurrentUser { get; set; } = null;
   public string Stacktrace { get; set; } = "System.UnhandledExceptionEventArgs";
   public string UserInput { get; set; } = String.Empty;
   public string OtherData { get; set; } = null;
   public string TimeStamp { get; set; } = "2017-10-10T16:48:58.606512-04:00";
}

然后初始化该类的对象,只需使用JavaScriptSerializer将其序列化为json:

Model md = new Model();
System.Web.Script.Serialization.JavaScriptSerializer ser = new System.Web.Script.Serialization.JavaScriptSerializer();
var json = ser.Serialize(md);

结果将在json中:

{"CurrentUser":null,"Stacktrace":"System.UnhandledExceptionEventArgs","UserInput":"","OtherData":null,"TimeStamp":"2017-10-10T16:48:58.606512-04:00"}

答案 1 :(得分:0)

我不是专家,但是由于没有其他人做出回应,或许你只需要将内容类型设置为JSON?

HttpContent httpContent = new StringContent(test, Encoding.UTF8, "application/json");

请参阅POSTing JsonObject With HttpClient From Web API

答案 2 :(得分:0)

尝试df = df.groupby('member_no', as_index=False).max() print(df) member_no data_1 data_2 data_3 dat_1 dat_2 other_1 other_2 0 1 1 3 0 0 1 1 1 1 2 0 1 5 1 0 1 1 给你的json。也许这会奏效。

答案 3 :(得分:0)

嘿,谢谢你的回答。你们都是对的,我很感激你的帮助。这个问题最终并不是json。基本上这个错误正在传播,并且在我认为它被处理之后实际上出现了两次。所以我认为它告诉我无效的json存在(它在哪里破坏)实际上它是从代码的进一步重复相同的错误消息。

再次感谢。