解析值时遇到意外的字符:o。路径'',第1行,第1位

时间:2017-09-07 07:24:31

标签: c# json

我正在使用C#和Json.NET。我传递的JSON对象

{ "user": { "name": "Bindu" } };

我正在处理此JSON对象的C#代码是:

public class user
{
    [JsonProperty("name")]
    public string name { get; set; }

}

public void SampleEvent(string param)
{
    List<user> s = JsonConvert.DeserializeObject<List<user>>(param);
    System.Windows.MessageBox.Show("Sample Event Called");
}

使用Newtonsoft.Json反序列化JSON对象。在&#34; param&#34;我总是只获取JSON对象(如[object Object])。

但是当我尝试反序列化时,我总是得到

  

&#34;解析值时遇到意外的字符:o&#34;异常。

尝试了不同的场景,但始终面临同样的问题。还通过此链接http://jsonlint.com/检查我传递的JSON是否有效。它有效。

请帮助解决这个问题。感谢

1 个答案:

答案 0 :(得分:2)

您的JSON { "user": { "name": "Bindu" } }不是user的列表,但更像是:

public class SomeWrappingClass
{
    public user user { get; set; }
}

如果要将其序列化为列表,则格式应为:

[{ "name": "Bindu" }]  

以下作品:

var result = JsonConvert.DeserializeObject<SomeWrappingClass>(
    "{ \"user\": { \"name\": \"Bindu\" } }");

或者对象集合:

var data = "[{ \"user\": { \"name\": \"Bindu\" } }, { \"user\": { \"name\": \"Mohapatra\" } }]";
var result = JsonConvert.DeserializeObject<List<SomeWrappingClass>>(data);