解析值时遇到意外字符:
Unexpected character encountered while parsing value:
我正在尝试使用 Steam 的 Web API 接收 JSON 并使用 JSON.Net 解析它。我只是硬编码一个 URL,我知道我会收到 JSON。当我 运行 时,我 运行 遇到了以下错误:
Unexpected character encountered while parsing value: . Path '', line
0, position 0.
错误指向我控制器的第 22 行:
Line 22: SteamResponse response = JsonConvert.DeserializeObject(json);
这是我的 类:
public class Game
{
public int appid { get; set; }
public int playtime_forever { get; set; }
public int? playtime_2weeks { get; set; }
}
public class SteamResponse
{
public int game_count { get; set; }
public List<Game> games { get; set; }
}
public class RootObject
{
public SteamResponse response { get; set; }
}
我的控制器是这样的:
List<Game> gameList = new List<Game>();
WebClient wc = new WebClient();
var json = wc.DownloadString("http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=" + steamAPIKey + "&steamid=76561197994394917&format=json");
SteamResponse response = JsonConvert.DeserializeObject<SteamResponse>(json);
我在浏览器中访问了 URL 以验证其正确性,并且我还使用 JSON Lint 测试了 URL。我不确定我在这里做错了什么 - 我检查了其他主题并检查了他们列出但没有找到的问题。
您已经创建了一个 RootObject
类型,但您没有在反序列化中使用它。你试过了吗:
var root = JsonConvert.DeserializeObject<RootObject>(json);
// access root.response;
我正在尝试使用 Steam 的 Web API 接收 JSON 并使用 JSON.Net 解析它。我只是硬编码一个 URL,我知道我会收到 JSON。当我 运行 时,我 运行 遇到了以下错误:
Unexpected character encountered while parsing value: . Path '', line 0, position 0.
错误指向我控制器的第 22 行:
Line 22: SteamResponse response = JsonConvert.DeserializeObject(json);
这是我的 类:
public class Game
{
public int appid { get; set; }
public int playtime_forever { get; set; }
public int? playtime_2weeks { get; set; }
}
public class SteamResponse
{
public int game_count { get; set; }
public List<Game> games { get; set; }
}
public class RootObject
{
public SteamResponse response { get; set; }
}
我的控制器是这样的:
List<Game> gameList = new List<Game>();
WebClient wc = new WebClient();
var json = wc.DownloadString("http://api.steampowered.com/IPlayerService/GetOwnedGames/v0001/?key=" + steamAPIKey + "&steamid=76561197994394917&format=json");
SteamResponse response = JsonConvert.DeserializeObject<SteamResponse>(json);
我在浏览器中访问了 URL 以验证其正确性,并且我还使用 JSON Lint 测试了 URL。我不确定我在这里做错了什么 - 我检查了其他主题并检查了他们列出但没有找到的问题。
您已经创建了一个 RootObject
类型,但您没有在反序列化中使用它。你试过了吗:
var root = JsonConvert.DeserializeObject<RootObject>(json);
// access root.response;