我需要反序列化此JSON数据:
{
illustId: 73024242,
illustTitle: 标题,
illustType: 0,
tags: [
ロリ,
猫耳
],
userId: 123,
userName: 庭,
userImage: null,
isBookmarkable: true,
isBookmarked: false,
isPrivateBookmark: false,
width: 1024,
height: 1536,
pageCount: 3,
bookmarkCount: 0,
responseCount: 0
}
这是我的班级定义:
[JsonObject]
public class JsonItem
{
[JsonProperty("illustId")]
public int PicID { get; set; }
[JsonProperty("illustTitle")]
public string TitleName { get; set; }
[JsonProperty("illustType")]
private int Type { get; set; }
[JsonProperty("url")]
public string PicURL { get; set; }
[JsonProperty("tags")]
public object Tags { get; set; }
[JsonProperty("userId")]
public int UserID { get; set; }
[JsonProperty("userName")]
public string UserName { get; set; }
[JsonProperty("userImage")]
private object userImage { get; set; }
[JsonProperty("isBookmarkable")]
private bool orzA { get; set; }
[JsonProperty("isBookmarked")]
private bool orzB { get; set; }
[JsonProperty("isPrivateBookmark")]
private bool orzC { get; set; }
[JsonProperty("width")]
public int Weight { get; set; }
[JsonProperty("height")]
public int Height { get; set; }
[JsonProperty("pageCount")]
public int Count { get; set; }
[JsonProperty("bookmarkCount")]
private int orzD { get; set; }
[JsonProperty("responseCount")]
private int orzE { get; set; }
}
我正在运行以下代码:
dynamic jsonText = JsonConvert.DeserializeObject(str);
但是它不起作用。我也尝试过使用UTF-8字符集。
这是StackTrace 在Newtonsoft.Json.JsonTextReader.ParseValue() 在Newtonsoft.Json.JsonTextReader.Read() 在Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateJObject(JsonReader reader) 在Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader阅读器,类型objectType,JsonContract合同,JsonProperty成员,JsonContainerContract containerContract,JsonProperty containerMember,对象existingValue) 在Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader,Type objectType,JsonContract合同,JsonProperty成员,JsonContainerContract containerContract,JsonProperty containerMember,对象existValue) 在Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader,Type objectType,Boolean checkAdditionalContent) 在Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader,Type objectType) 在Newtonsoft.Json.JsonConvert.DeserializeObject(字符串值,类型,JsonSerializerSettings设置) 在Newtonsoft.Json.JsonConvert.DeserializeObject(字符串值) 在Test.Program.Main()位置H:\爬虫\ Test \ Test \ Program.cs:行号34
答案 0 :(得分:0)
解决该错误的方法是@Sami Kuhmonen的注释,将字符串用引号引起来。
请让我添加此信息。
此代码不使用JsonItem类。
dynamic jsonText = JsonConvert.DeserializeObject(str);
要将Json反序列化为JsonItem,请使用以下类型参数:
JsonItem jsonText = JsonConvert.DeserializeObject<JsonItem>(str);