我正在使用C#和JSON.NET。以下是两种类型。能够反序列化字符串类型但不支持对象类型
JSON object - var user = { "name": "test", "title": "mytitle"};
JSON String - var user1 = "{ \"name\": \"test\", \"title\": \"mytitle\" }";
使用Newtonsoft.Json反序列化JSON对象。我正在处理JSON的C#代码。
public class sampledata
{
[JsonProperty("name")]
public string name { get; set; }
[JsonProperty("title")]
public string title { get; set; }
}
public void SampleEvent(string param)
{
sampledata s = JsonConvert.DeserializeObject<sampledata>(param);
}
当我在参数得到JSON字符串反序列化是好的。但是,当我在参数JSON对象 - 我得到第一个错误是
“不能在当前JSON阵列(例如[1,2,3])反序列化为类型‘UCRS.MainWindow +的sampleData’因为类型需要JSON对象 (例如{“名称”:“值”})来正确地反序列化
为了解决这个错误或者改变JSON来JSON对象(例如 {“名称”。: “value”})或将反序列化类型更改为数组或实现集合接口(例如ICollection,IList)的数组或就像可以从JSON数组反序列化的List。 也可以将JsonArrayAttribute添加到该类型,以强制它从一个JSON数组中反序列化 。
路径 '',1号线,位置1
所以我改变了代码:
List<sampledata> s = JsonConvert.DeserializeObject<List<sampledata>>(param);
然后我面临的不同问题
“意外的性格遇到同时解析值:o。Path'', 第1行,第1位。“
当在网页中引发一些事件我正在使用webbrowser objectforscripting在c#中处理该事件。我总是得到JSON对象作为参数。如何反序列化C#中的JSON对象?请帮助
发布其抛出这个错误,而不是一个实物模型 – Rahul
你如何调用该方法与对象的确切JSON字符串? object.ToString()将不起作用,因为该对象是一个匿名类型,并不会影响JSON字符串 – Arcturus
@Rahul - 这是抛出错误的相同示例。 {“name”:“test”,“title”:“mytitle”}这是试图反序列化抛出错误时的JSON对象。 –