【发布时间】:2018-07-09 11:37:50
【问题描述】:
当我尝试解析 Json 结果时,出现以下异常:
解析值时遇到意外字符:[。路径“数据”,第 1 行,位置 26。
这是我的 Json 数据:
{
"StatusCode":200,
"Data":[
{
"MemberId":1,
"CreaterUserId":5,
"FirstName":"Saravanan",
"LastName":"Subramanian",
"Title":"Physician\u0019s Assistant",
"License":"A 123447",
"Email":"saravanan.radhamani@gmail.com",
"PhoneNumber":"1234567",
"IsSign":true,
"IsMemberActive":true,
"CreatedDate":"2018-06-23T15:45:44.843",
"PhotoPath":null
}
]
}
这是我的 C# 代码:
public static void Main(string[] args)
{
string response = null;
try
{
response = makeRequest();
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
var data = JsonConvert.DeserializeObject<PolstForm>(response);
Console.WriteLine(string.Format("StatusCode : {0} , Data : {1}",
data.StatusCode,
data.Data[0]));
Console.ReadKey();
}
private static string makeRequest()
{
var client = new RestClient(urlString);
var request = new RestRequest(Method.GET);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("accept", "application/json");
return client.Execute(request).Content; //the Content (body) of the response
}
这是我的 PolstForm.class
public class PolstForm
{
public int StatusCode { get; set; }
public string Data { get; set; }
}
当我试图解析来自 json 的数据时,它会返回一个错误。
显示的错误是:
JsonReaderException 未被用户代码处理: Newtonsoft.Json.dll 中出现“Newtonsoft.Json.JsonReaderException”类型的异常,但未在用户代码中处理 信息:解析值时遇到意外字符:[。 路径“数据”,第 1 行,位置 26。
响应包含上述Json格式。
如果你有其他的东西,请与我分享。
【问题讨论】:
-
你确定你已经提交了被解析的实际 JSON吗?您显示的内容在第 1 行没有位置 26。
-
json 看起来不错。您是按原样从
response复制它还是更改了它?您可能已经删除了一些造成问题的字符... -
现在我正在编辑我的代码并添加 PolstForm 类,请告诉我一个解决方案。从我认为的 PhotoPath 解析空值错误。
-
string Data你的 Json 在这里显示一个数组而不是一个字符串。还有你期望data.Data[0]会返回什么?