我是.Net的新手,我正在为我的网站创建一个桌面应用程序。我使用JSON和 Json.NET 传递数据但是每次我尝试解码此字符串时都会收到错误。什么可能是错的?如何解码多维数组。
这是我正在解码的字符串
{
"api_ver":"1.0",
"request":"user-account-exists",
"date":"2014-08-25 09:57:16",
"data":
{
"user_account_exists":1
}
}
我的代码在这里
json_data = string.Empty;
try
{
json_data = webclient.DownloadString("http://api.mysite.com/?ruser-account-exists");
}
catch (Exception e)
{
Logger.Log(e.Message);
}
_api = !string.IsNullOrEmpty(json_data) ? JsonConvert.DeserializeObject<api>(json_data) :
new api();
错误如下所示
读取字符串时出错。意外的令牌:StartObject。路径'数据',行 1,位置86。
我想将此数组反序列化为字典
答案 0 :(得分:3)
发生此错误是因为api
类没有充分建模json。
该模型应类似于以下模型(使用Json2CSharp生成):
public class Api
{
public string api_ver { get; set; }
public string request { get; set; }
public string date { get; set; }
public Data data { get; set; }
}
public class Data
{
public int user_account_exists { get; set; }
}
您可以选择使用dynamic
dynamic values = JsonConvert.DeserializeObject<dynamic>(json_data);
bool exists = (int) values.data.user_account_exists == 1;
答案 1 :(得分:0)
试试这个?
public class api
{
public string api_ver { get; set; }
public string request { get; set; }
public string date { get; set; }
public Data data { get; set; }
}
public class Data
{
public int user_account_exists { get; set; }
}
api apiObj = JsonConvert.DeserializeObject<api>(json_data) ;