Unexpected character encountered while parsing value:

被刻印的时光 ゝ 提交于 2019-12-11 10:13:42

问题


I'm trying to use Steam's Web API to receive JSON and parse it using JSON.Net. I'm simply hard-coding a URL where I know I'll receive JSON. I'm running into the following error when I run it though:

Unexpected character encountered while parsing value: . Path '', line 0, position 0.

The error points to line 22 of my controller:

Line 22: SteamResponse response = JsonConvert.DeserializeObject(json);

Here are my classes:

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; }
}

My controller looks like this:

        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);

I've visited the URL in browser to verify it's correct, and I've also tested the URL using JSON Lint. I'm not sure what I'm doing wrong here - I've checked other topics and checked for the problems they've listed but didn't find them.

Here is a link to the JSON I'm attempting to receive.


回答1:


You've created a RootObject type, but you're not using it in the deserialization. Have you tried:

var root = JsonConvert.DeserializeObject<RootObject>(json);
// access root.response;


来源:https://stackoverflow.com/questions/33849382/unexpected-character-encountered-while-parsing-value

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!