Currently, I have some issues. I’m using C# with Json.NET. The issue is that I always get:
{«Unexpected character encountered while parsing value: e. Path », line 0, position 0.»}
So the way I’m using Json.NET is the following. I have a Class which should be saved. The class looks like this:
public class stats
{
public string time { get; set; }
public string value { get; set; }
}
public class ViewerStatsFormat
{
public List<stats> viewerstats { get; set; }
public String version { get; set; }
public ViewerStatsFormat(bool chk)
{
this.viewerstats = new List<stats>();
}
}
One object of this class will be filled and saved with:
File.WriteAllText(tmpfile, JsonConvert.SerializeObject(current), Encoding.UTF8);
The saving part works fine and the file exists and is filled. After that the file will be read back into the class with:
try
{
ViewerStatsFormat current = JsonConvert.DeserializeObject<ViewerStatsFormat>(tmpfile);
//otherstuff
}
catch(Exception ex)
{
//error loging stuff
}
Now on the current= line comes the exception:
{«Unexpected character encountered while parsing value: e. Path », line 0, position 0.»}
I don’t know why this comes. The JSON file is the following -> Click me I am the JSON link
Does anyone have any ideas?
![]()
asked Apr 24, 2014 at 3:16
![]()
6
Possibly you are not passing JSON to DeserializeObject.
It looks like from File.WriteAllText(tmpfile,... that type of tmpfile is string that contain path to a file. JsonConvert.DeserializeObject takes JSON value, not file path — so it fails trying to convert something like @"c:tempfooo" — which is clearly not JSON.
![]()
MrBoJangles
12.1k17 gold badges63 silver badges79 bronze badges
answered Apr 24, 2014 at 3:23
Alexei LevenkovAlexei Levenkov
98k12 gold badges129 silver badges178 bronze badges
1
I solved the problem with these online tools:
- To check if the Json structure is OKAY: http://jsonlint.com/
- To generate my Object class from my Json structure: https://www.jsonutils.com/
The simple code:
RootObject rootObj= JsonConvert.DeserializeObject<RootObject>(File.ReadAllText(pathFile));
answered Mar 4, 2016 at 21:02
![]()
2
In my case, the file containing JSON string had BOM. Once I removed BOM the problem was solved.

answered Dec 29, 2019 at 19:19
Aleksei MialkinAleksei Mialkin
2,1271 gold badge26 silver badges25 bronze badges
3
I experienced the same error in my Xamarin.Android solution.
I verified that my JSON was correct, and noticed that the error only appeared when I ran the app as a Release build.
It turned out that the Linker was removing a library from Newtonsoft.JSON, causing the JSON to be parsed incorrectly.
I fixed the error by adding Newtonsoft.Json to the Ignore assemblies setting in the Android Build Configuration (screen shot below)
JSON Parsing Code
static readonly JsonSerializer _serializer = new JsonSerializer();
static readonly HttpClient _client = new HttpClient();
static async Task<T> GetDataObjectFromAPI<T>(string apiUrl)
{
using (var stream = await _client.GetStreamAsync(apiUrl).ConfigureAwait(false))
using (var reader = new StreamReader(stream))
using (var json = new JsonTextReader(reader))
{
if (json == null)
return default(T);
return _serializer.Deserialize<T>(json);
}
}
Visual Studio Mac Screenshot

Visual Studio Screenshot

answered Feb 18, 2017 at 8:51
![]()
Brandon MinnickBrandon Minnick
12.8k13 gold badges66 silver badges117 bronze badges
0
I have also encountered this error for a Web API (.Net Core 3.0) action that was binding to a string instead to an object or a JObject. The JSON was correct, but the binder tried to get a string from the JSON structure and failed.
So, instead of:
[HttpPost("[action]")]
public object Search([FromBody] string data)
I had to use the more specific:
[HttpPost("[action]")]
public object Search([FromBody] JObject data)
answered Nov 23, 2019 at 9:51
2
This issue is related to Byte Order Mark in the JSON file. JSON file is not encoded as UTF8 encoding data when saved. Using File.ReadAllText(pathFile) fix this issue.
When we are operating on Byte data and converting that to string and then passing to JsonConvert.DeserializeObject, we can use UTF32 encoding to get the string.
byte[] docBytes = File.ReadAllBytes(filePath);
string jsonString = Encoding.UTF32.GetString(docBytes);
![]()
Minzkraut
2,10924 silver badges30 bronze badges
answered Feb 1, 2018 at 8:34
![]()
PraveenPraveen
1472 silver badges5 bronze badges
I had the same problem with webapi in ASP.NET core, in my case it was because my application needs authentication, then it assigns the annotation [AllowAnonymous] and it worked.
[AllowAnonymous]
public async Task <IList <IServic >> GetServices () {
}
![]()
Joey
1,4182 gold badges20 silver badges33 bronze badges
answered Apr 17, 2019 at 11:57
![]()
1
I ran into this issue and it ended up being because of BOM characters in my input string.
Here’s what I ended up doing:
String.Trim(new char[] { 'uFEFF', 'u200B' });
This resolved the issue for me.
answered Oct 26, 2021 at 15:21
In my case, I was getting an error on JsonConvert.PopulateObject().
My request was returning JSON that was wrapped in an extra pair of ‘[ ]’ brackets, making my result an array of one object rather than just an object. Here’s what I did to get inside these brackets (only for that type of model):
T jsonResponse = new T();
var settings = new JsonSerializerSettings
{
DateParseHandling = DateParseHandling.DateTimeOffset,
NullValueHandling = NullValueHandling.Ignore,
};
var jRslt = response.Content.ReadAsStringAsync().Result;
if (jsonResponse.GetType() == typeof(myProject.Models.MyModel))
{
var dobj = JsonConvert.DeserializeObject<MyModel[]>(jRslt);
var y = dobj.First();
var szObj = JsonConvert.SerializeObject(y);
JsonConvert.PopulateObject(szObj, jsonResponse, settings);
}
else
{
JsonConvert.PopulateObject(jRslt, jsonResponse);
}
answered Nov 12, 2019 at 16:04
pkucaspkucas
1295 bronze badges
If you are using downloading data using url…may need to use
var result = client.DownloadData(url);
![]()
Liam
26.7k27 gold badges120 silver badges183 bronze badges
answered Mar 23, 2017 at 20:08
TaranTaran
2,66524 silver badges22 bronze badges
In my scenario I had a slightly different message, where the line and position were not zero.
E. Path ‘job[0].name’, line 1, position 12.
This was the top Google answer for the message I quoted.
This came about because I had called a program from the Windows command line, passing JSON as a parameter.
When I reviewed the args in my program, all the double quotes got stripped.
You have to reconstitute them.
I posted a solution here. Though it could probably be enhanced with a Regex.
answered May 2, 2019 at 11:31
![]()
JGFMKJGFMK
8,1274 gold badges53 silver badges92 bronze badges
I had a similar error and thought I’d answer in case anyone was having something similar. I was looping over a directory of json files and deserializing them but was getting this same error.
The problem was that it was trying to grab hidden files as well. Make sure the file you’re passing in is a .json file. I’m guessing it’ll handle text as well. Hope this helps.
answered Jul 22, 2019 at 16:06
![]()
I had simular problem. In my case the problem was in DateTime format. It was just numbers and it is also know as EpochFormat or UnixTimestamp.
A part from my JSON:
"direction": "outbound",
"date_archive": 1554691800224,
"date_doc": 1524700800000,
"date_sent": 1524704189000,
"date_received": 1524704189000,
"date_store_till": 1712544600224,
So I’ve used an attribute like this:
[JsonProperty("date_received")]
[JsonConverter(typeof(MicrosecondEpochConverter))]
public DateTime? DateReceived { get; set; }
You can find MicrosecondEpochConverter code here: https://stackoverflow.com/a/19972214/4324624
answered Apr 6, 2022 at 20:26
![]()
VladislavVladislav
2081 silver badge12 bronze badges
I faced similar error message in Xamarin forms when sending request to webApi to get a Token,
- Make sure all keys (key : value) (ex.’username’, ‘password’, ‘grant_type’) in the Json file are exactly what the webApi expecting, otherwise it fires this exception.
Unhandled Exception: Newtonsoft.Json.JsonReaderException: Unexpected character encountered while parsing value: <. Path », line 0, position 0
answered Sep 7, 2018 at 6:42
0
Please check the model you shared between client and server is same. sometimes you get this error when you not updated the Api version and it returns a updated model, but you still have an old one. Sometimes you get what you serialize/deserialize is not a valid JSON.
answered Feb 1, 2019 at 2:56
![]()
In my case, it was the lack of a default parameterless constructor !!!
answered Jan 14, 2022 at 23:17
![]()
A.B.A.B.
2,2433 gold badges23 silver badges39 bronze badges
In my case, I was calling the async service method without using await, so before Task is completed I was trying to return the result!
answered Mar 1, 2022 at 0:53
Suppose this is your json
{
"date":"11/05/2016",
"venue": "{"ID":12,"CITY":Delhi}"
}
if you again want deserialize venue, modify json as below
{
"date":"11/05/2016",
"venue": "{"ID":"12","CITY":"Delhi"}"
}
then try to deserialize to respective class by taking the value of venue
answered May 11, 2016 at 7:35
2
This error occurs when we parse json content to model object. Json content type is string.
For example:
https://dotnetfiddle.net/uFClKj
Some times, an api that we call may return an error. If we do not check the response status, but proceed to parse the response to model, this issue will occur.
shr
8059 silver badges20 bronze badges
answered Nov 7, 2020 at 9:13
When I encountered a similar problem, I fixed it by substituting &mode=xml for &mode=json in the request.
![]()
ryanyuyu
6,24810 gold badges52 silver badges51 bronze badges
answered Sep 26, 2016 at 12:42
AlfredBauerAlfredBauer
1052 silver badges6 bronze badges
0
Just received this message from Microsoft as the issue has been resolved:
Issue — Send an Email (V2) action fails with the following error message. Http request failed: the content was not a valid JSON. Error while parsing JSON: 'Unexpected character encountered while parsing value: R. Path '', line 0, position 0.'
Findings — Our logs indicated that the same role instance LargeDedicatedWebWorkerRole_IN_26 failed to load the certificate around 2022-11-02 at 22:06:15. Typically, this means, that the role instance had trouble getting at its certificate store. Thus, our product team rebooted the worker on 11/09 and that mitigated the issue.
Outcome — Dev team has mitigated the issue and is working on improving worker health checks in order to ensure the issue does not reoccur.
Root Cause — A bad worker was intermittently failing in an internal service that handles access tokens, causing unexpected errors to occur for a small subset of users.
- Remove From My Forums
-
Question
-
User-1946833879 posted
I am getting below error:
Unexpected character encountered while parsing value: e. Path », line 0, position 0.
in mvc application.
line is-
CustomerClass CustData = JsonConvert.DeserializeObject<CustomerClass>(str);
in str i have encoded string for example-
str=»eyJNZXNzYWdlIjoiSGksXHJcbiAgICAgUGxlYXNlIGZpbmQgYmVsb3cgdXJsIG9mIGN1c3RvbWl6ZWQgcHJvZHVjdC5cclxuICAgICBQcm9kdWN0IERldGFpbHM6XHJcbiAgICAgwqAgUHJvZHVjdCBDb2RlOiBzYWdkc2ZnXHJcbiAgICAgwqAgU0tVOiBkZmhkZmhkZ2hkXHJcbiAgICAgwqAgUHJpY2U6IFxyXG4gICAgIMKgIEF0dHJpYnV0…
Please suggest!
Answers
-
User753101303 posted
Hi,
«encoded» that is? You would likely need to «decode» first this string which might then give a valid json string. A json string looks like https://en.wikipedia.org/wiki/JSON#JSON_sample
Not directly related but if this is part of a web service/api call deserialization should be handled automatically for you.
-
Marked as answer by
Thursday, October 7, 2021 12:00 AM
-
Marked as answer by
-
-
Marked as answer by
Anonymous
Thursday, October 7, 2021 12:00 AM
-
Marked as answer by