我正在使用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是否有效。它有效。
请帮助解决这个问题。感谢
答案 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);