C#:Json 到对象:获取错误 ex = {"Unexpected character encountered while parsing value: {. Path 'result', line 1, position 12."}
C#: Json to Object: Getting error ex = {"Unexpected character encountered while parsing value: {. Path 'result', line 1, position 12."}
我不确定我的 class 设置是否错误或没有导致错误。我对使用 Json 还很陌生。
函数代码:
Response = OpenIDM.GetUserInformation(email, fields);
LDAPMembership = JsonConvert.DeserializeObject<LDAPMembership>(Response);
string id = LDAPMembership._id;
class:
public class LDAPMembership
{
public string[] result { get; set; }
public string _id { get; set; }
public string _rev { get; set; }
public string[] ahaMemberGroup { get; set; }
public string[] ahaDrupalPermissions { get; set; }
public string resultCount { get; set; }
public string pagedResultsCookie { get; set; }
public string totalPagedResultsPolicy { get; set; }
public string totalPagedResults { get; set; }
public string remainingPagedResults { get; set; }
}
Json 字符串:
{\"result\":[{\"_id\":\"98d0d0b9-9506-40b4-84c4-e005d4bc25ec\",\"_rev\":\"1\",\"ahaMemberGroup\":[\"AONE\",\"AHA\"]}],\"resultCount\":1,\"pagedResultsCookie\":null,\"totalPagedResultsPolicy\":\"NONE\",\"totalPagedResults\":-1,\"remainingPagedResults\":-1}
抛出异常:
解析值时遇到意外字符:{。路径 'result',第 1 行,位置 12。"}
我怀疑我没有在 class 中正确设置 "result"。我四处搜索,发现了一个类似的问题并尝试了响应,但没有用。
此行引发错误:
LDAPMembership = JsonConvert.DeserializeObject<LDAPMembership>(Response);
Visual Studio 可以为您做到这一点。获取干净的 JSON(没有所有那些 \"
),将 Json 放在剪贴板上,将光标放在 C# 文件中,然后 select
Edit, Paste Special, Classes from JSon
public class Rootobject
{
public Result[] result { get; set; }
public int resultCount { get; set; }
public object pagedResultsCookie { get; set; }
public string totalPagedResultsPolicy { get; set; }
public int totalPagedResults { get; set; }
public int remainingPagedResults { get; set; }
}
public class Result
{
public string _id { get; set; }
public string _rev { get; set; }
public string[] ahaMemberGroup { get; set; }
}
按原样使用或稍微清理一下。将 Rootobject
更改为您喜欢的任何值。
请注意,您可能想要修复 pagedResultsCookie 的类型。
我不确定我的 class 设置是否错误或没有导致错误。我对使用 Json 还很陌生。
函数代码:
Response = OpenIDM.GetUserInformation(email, fields);
LDAPMembership = JsonConvert.DeserializeObject<LDAPMembership>(Response);
string id = LDAPMembership._id;
class:
public class LDAPMembership
{
public string[] result { get; set; }
public string _id { get; set; }
public string _rev { get; set; }
public string[] ahaMemberGroup { get; set; }
public string[] ahaDrupalPermissions { get; set; }
public string resultCount { get; set; }
public string pagedResultsCookie { get; set; }
public string totalPagedResultsPolicy { get; set; }
public string totalPagedResults { get; set; }
public string remainingPagedResults { get; set; }
}
Json 字符串:
{\"result\":[{\"_id\":\"98d0d0b9-9506-40b4-84c4-e005d4bc25ec\",\"_rev\":\"1\",\"ahaMemberGroup\":[\"AONE\",\"AHA\"]}],\"resultCount\":1,\"pagedResultsCookie\":null,\"totalPagedResultsPolicy\":\"NONE\",\"totalPagedResults\":-1,\"remainingPagedResults\":-1}
抛出异常: 解析值时遇到意外字符:{。路径 'result',第 1 行,位置 12。"}
我怀疑我没有在 class 中正确设置 "result"。我四处搜索,发现了一个类似的问题并尝试了响应,但没有用。
此行引发错误:
LDAPMembership = JsonConvert.DeserializeObject<LDAPMembership>(Response);
Visual Studio 可以为您做到这一点。获取干净的 JSON(没有所有那些 \"
),将 Json 放在剪贴板上,将光标放在 C# 文件中,然后 select
Edit, Paste Special, Classes from JSon
public class Rootobject
{
public Result[] result { get; set; }
public int resultCount { get; set; }
public object pagedResultsCookie { get; set; }
public string totalPagedResultsPolicy { get; set; }
public int totalPagedResults { get; set; }
public int remainingPagedResults { get; set; }
}
public class Result
{
public string _id { get; set; }
public string _rev { get; set; }
public string[] ahaMemberGroup { get; set; }
}
按原样使用或稍微清理一下。将 Rootobject
更改为您喜欢的任何值。
请注意,您可能想要修复 pagedResultsCookie 的类型。