如何使用JSON.NET对JSON字符串进行反序列化,该JSON.NET对字段使用空引号而不是null
我正在尝试使用JSON.NET反序列化一些reddit注释(以JSON返回)。我遇到了一个问题,注释中有一个字段“Replies”,它要么是另一个注释对象,要么是空引号(“”)。问题是,当反序列化一个字段时,JSON.NET反序列化程序会抛出一个异常,该字段需要一个对象,但会找到“”(我希望它是在查找null而不是“”) 例如:如何使用JSON.NET对JSON字符串进行反序列化,该JSON.NET对字段使用空引号而不是null,.net,json,json.net,deserialization,.net,Json,Json.net,Deserialization,我正在尝试使用JSON.NET反序列化一些reddit注释(以JSON返回)。我遇到了一个问题,注释中有一个字段“Replies”,它要么是另一个注释对象,要么是空引号(“”)。问题是,当反序列化一个字段时,JSON.NET反序列化程序会抛出一个异常,该字段需要一个对象,但会找到“”(我希望它是在查找null而不是“”) 例如: "data":{ "body":"We were being trolled. ", "subreddit_id":"t5_2qh1i", "author_flair
"data":{
"body":"We were being trolled. ",
"subreddit_id":"t5_2qh1i",
"author_flair_css_class":null,
"created":1318984933.0,
"author_flair_text":null,
"downs":1,
"author":"evange",
"created_utc":1318959733.0,
"body_html":"<div class=\"md\"><p>We were being trolled.</p></div>",
"levenshtein":null,
"link_id":"t3_lghhj",
"parent_id":"t3_lghhj",
"likes":null,
"replies":"",
"id":"c2shf1a",
"subreddit":"AskReddit",
"ups":6,
"name":"t1_c2shf1a"
}
“数据”:{
“尸体”:“我们被拖走了。”,
“subreddit_id”:“t5_2qh1i”,
“author\u flair\u css\u class”:空,
“已创建”:1318984933.0,
“作者天赋”文本:空,
"唐斯":一,,
“作者”:“伊万奇”,
“创建utc”:1318959733.0,
“body_html”:“我们被跟踪了。”,
“levenshtein”:空,
“链接id”:“t3\U lghhj”,
“家长id”:“t3\U lghhj”,
“喜欢”:空,
“答复”:“,
“id”:“c2shf1a”,
“subreddit”:“AskReddit”,
“ups”:6,
“名称”:“t1_c2shf1a”
}
然后是:
"data":{
"body":"Dude, it was a Roll Troll. Forget it.",
"subreddit_id":"t5_2qh1i",
"author_flair_css_class":null,
"created":1318985233.0,
"author_flair_text":null,
"downs":1,
"author":"youngmonk",
"created_utc":1318960033.0,
"body_html":"<div class=\"md\"><p>Dude, it was a Roll Troll. Forget it.</p></div>",
"levenshtein":null,
"link_id":"t3_lghhj",
"parent_id":"t3_lghhj",
"likes":null,
"replies":{
"kind":"Listing",
"data":{
"modhash":"",
"children":[....etc
“数据”:{
“尸体”:“老兄,那是个滚轴巨魔,算了吧。”,
“subreddit_id”:“t5_2qh1i”,
“author\u flair\u css\u class”:空,
“已创建”:1318985233.0,
“作者天赋”文本:空,
"唐斯":一,,
“作者”:“小和尚”,
“创建utc”:1318960033.0,
“body_html”:“老兄,那是个掷骰子。算了吧。”,
“levenshtein”:空,
“链接id”:“t3\U lghhj”,
“家长id”:“t3\U lghhj”,
“喜欢”:空,
“答复”:{
“种类”:“上市”,
“数据”:{
“modhash”:“,
“儿童”:[……等
有没有一种方法可以用JSON.NET来反序列化它,或者我必须使用正则表达式来搜索“回复”:“将所有这些空引号更改为null?”
谢谢!这里的问题是与“回复”关联的类型属性是动态的:它可以是字符串或JSON对象。如果您使用.NET 4.0,则应使用dynamic关键字来反映数据的动态性质。如果您使用的是另一个版本的.NET,则可以反序列化为Newtonsoft.JSON.Linq.JObject。请看一个示例。祝您好运。您查看了吗?我将不得不接受看一看-我相信如果值为null就可以了,但是“”引起了一个问题,也许我可以让反序列化程序将“”视为null,谢谢提示!